From 17ca35b1a5ccf4f98c9a88b93845c48ad42fb2f4 Mon Sep 17 00:00:00 2001 From: Ed Rogers <etr@orc.soton.ac.uk> Date: Thu, 5 Apr 2018 17:45:08 +0200 Subject: [PATCH] Add retest possibility --- HearingTest.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/HearingTest.py b/HearingTest.py index 0ef9d42..0c664ea 100644 --- a/HearingTest.py +++ b/HearingTest.py @@ -17,6 +17,7 @@ class HearingTest: lower_lim = 0 n_blocks = 20 max_response_time = 1 # in seconds + untested_prob = 0.15 @staticmethod def block_size(): @@ -46,13 +47,21 @@ class HearingTest: return def play_next_sound(self): - # TODO allow tone outside lims with low prob? choices = [] - for i, freq in enumerate(self.freqs): - choices.extend([(freq, v) for v in - np.arange(self.lower_bounds[i]+self.block_size(), - self.upper_bounds[i], - self.block_size())]) + if random.random() < self.untested_prob: + # completely random - allows a little retesting + for freq in self.freqs: + choices.extend([(freq, v) for v in + np.arange(self.lower_lim, + self.upper_lim, + self.block_size())]) + else: + # only allow choices from untested parts + for i, freq in enumerate(self.freqs): + choices.extend([(freq, v) for v in + np.arange(self.lower_bounds[i]+self.block_size(), + self.upper_bounds[i], + self.block_size())]) freq, volume = random.choice(choices) self.library.play(freq, volume) played_time = time.time() -- GitLab