def __init__(self, ts_ary, display_sample): self.ir_timestamp_ary = ts_ary self.position = 0 self.max_boundary = display_sample self.display_sample = display_sample self.current_sample_time_point = 0 self.stroke_sensor_rec = StrokeSensorRecorder()
class StrokeBatchGenerator(object): """My class docstring.""" def __init__(self, ts_ary, display_sample): self.ir_timestamp_ary = ts_ary self.position = 0 self.max_boundary = display_sample self.display_sample = display_sample self.current_sample_time_point = 0 self.stroke_sensor_rec = StrokeSensorRecorder() def __iter__(self): return self def next(self): """Get the next sample's worth of data.""" count = 0 #while current_elapsed < self.max_boundary: while self.position < len(self.ir_timestamp_ary) and \ self.ir_timestamp_ary[self.position][0] < self.max_boundary: current_elapsed = self.ir_timestamp_ary[self.position][0] ir_id = self.ir_timestamp_ary[self.position][1] count += self.stroke_sensor_rec.update(current_elapsed, ir_id) self.position += 1 self.stroke_sensor_rec.reset_change() stroke_pos_change = count count = 0 self.max_boundary += self.display_sample return stroke_pos_change
def test_reset_the_recorder(self): ssr = StrokeSensorRecorder() ssr.update('800', 3) ssr.update('810', 2) ssr.update('820', 1) ssr.reset_change() self.assertEquals(0, ssr.get_stroke_pos_change()) self.assertEquals([], ssr.get_ir_pos_updates())
def test_moving_back_cancels_out_moving_forward(self): ssr = StrokeSensorRecorder() ssr.update('800', 3) ssr.update('810', 2) ssr.update('820', 1) ssr.update('830', 2) ssr.update('840', 3) ssr.update('850', 1) self.assertEquals(0, ssr.get_stroke_pos_change()) self.assertEquals([['800',3], \ ['810',2], \ ['820',1], \ ['830',2], \ ['840',3], \ ['850',1]], ssr.get_ir_pos_updates())
def test_two_stroke_pos_change_back(self): ssr = StrokeSensorRecorder() ssr.update('800', 3) ssr.update('810', 2) ssr.update('820', 1) ssr.update('830', 3) ssr.update('840', 2) ssr.update('850', 1) self.assertEquals(-2, ssr.get_stroke_pos_change()) self.assertEquals([['800',3], \ ['810',2], \ ['820',1], \ ['830',3], \ ['840',2], \ ['850',1]],ssr.get_ir_pos_updates())
def test_no_stroke_pos_change(self): ssr = StrokeSensorRecorder() ssr.update('800', 3) ssr.update('810', 2) ssr.update('820', 3) ssr.update('830', 2) self.assertEquals(0, ssr.get_stroke_pos_change()) self.assertEquals([['800',3], \ ['810',2], \ ['820',3], \ ['830',2]], ssr.get_ir_pos_updates())
class Sample(object): def __init__(self): self.ssr = StrokeSensorRecorder() self.fwr = FlywheelRecorder() self.elapsed_time = 0 def collect_sample(self, flywheel_q, session_start_time, session_end_time, sample_end_time): sample_current_time = datetime.datetime.now() while sample_current_time < sample_end_time and sample_current_time < session_end_time: if not flywheel_q.empty(): flywheel_time = flywheel_q.get_nowait() self.elapsed_time = flywheel_time - session_start_time self.elapsed_time = timedelta_milliseconds(self.elapsed_time) self.fwr.update(self.elapsed_time) if not IRq.empty(): item = IRq.get_nowait() ir_time = item[0] new_ir = item[1] self.elapsed_time = ir_time - session_start_time self.elapsed_time = timedelta_milliseconds(self.elapsed_time) self.ssr.update(self.elapsed_time, new_ir) sample_current_time = datetime.datetime.now() def get_sample_flywheel_updates(self): return self.fwr.flywheel_updates def get_sample_ir_updates(self): return self.ssr.get_ir_pos_updates() def get_stroke_pos_change(self): return self.ssr.get_stroke_pos_change() def get_flywheel_change(self): return self.fwr.get_change() def reset(self): self.fwr.reset_change() self.ssr.reset_change()
def test_one_stroke_pos_change_forwrd_and_two_back(self): ssr = StrokeSensorRecorder() ssr.update('800', 1) ssr.update('810', 2) ssr.update('820', 3) ssr.update('830', 2) ssr.update('840', 1) ssr.update('850', 3) ssr.update('860', 2) ssr.update('870', 1) ssr.update('880', 3) self.assertEquals(-1, ssr.get_stroke_pos_change()) self.assertEquals([['800',1], \ ['810',2], \ ['820',3], \ ['830',2], \ ['840',1], \ ['850',3], \ ['860',2], \ ['870',1], \ ['880',3]],ssr.get_ir_pos_updates())
def test_no_activity(self): ssr = StrokeSensorRecorder() self.assertEquals(0, ssr.get_stroke_pos_change()) self.assertEquals([], ssr.get_ir_pos_updates())
def __init__(self): self.ssr = StrokeSensorRecorder() self.fwr = FlywheelRecorder() self.elapsed_time = 0