def test_split(self): data = TestGazelibMethods.data # data splitting when change in key data_splitted = gazelib.split_at_change_in_value(data, 'tag') self.assertEqual(len(data_splitted[0]), 2) self.assertEqual(len(data_splitted[1]), 1) self.assertEqual(len(data_splitted[2]), 3) # test the first value of one of the clips self.assertEqual(gazelib.get_value(data_splitted[1], 0, 'time'), 3)
def test_selections(self): data = TestGazelibMethods.data # get value works with some input self.assertEqual(gazelib.get_value(data, 3, 'x'), 0.8) # check if right amount of rows returned after selection clip = gazelib.first_gazepoints_by_time(data, 'time', 2) self.assertEqual(len(clip), 2) self.assertEqual(gazelib.get_value(clip, 0, 'time'), 1) clip = gazelib.first_gazepoints(data, 3) self.assertEqual(len(clip), 3) self.assertEqual(gazelib.get_value(clip, 0, 'time'), 1) clip = gazelib.gazepoints_after_time(data, 'time', 3) self.assertEqual(len(clip), 3) self.assertEqual(gazelib.get_value(clip, 0, 'time'), 4) clip = gazelib.gazepoints_containing_value(data, 'tag', ['definately_not_there', 'target2']) self.assertEqual(len(clip), 3) self.assertEqual(gazelib.get_value(clip, 1, 'time'), 5) clip = gazelib.gazepoints_not_containing_value(data, 'tag', ['target2']) self.assertEqual(len(clip), 3) self.assertEqual(gazelib.get_value(clip, 2, 'time'), 3)
def test_keyadd(self): data = TestGazelibMethods.data # adding keys data2 = gazelib.add_key(data, 'z', len(data)*[-1]) self.assertEqual(gazelib.get_value(data2, 4, 'z'), -1) # adding insuffisiently long vector of values produces error with self.assertRaises(IndexError): gazelib.add_key(data, 'z', [1,2,3]) # metrics calculations self.assertEqual(gazelib.duration(data, 'time'), 5) self.assertEqual(gazelib.longest_non_valid_streak(data, 'yval', 'time', [0,1]), 2)