def test_2parameters_random(self): experiment = read_text_file('data/text/two_parameter_1.txt') modeler = MultiParameterModeler() measurements = experiment.measurements[(Callpath('reg'), Metric('metr'))] for _ in range(len(measurements)): shuffle(measurements) f_msm = modeler.find_first_measurement_points(measurements) self.assertEqual(len(f_msm), 2) self.assertSetEqual( set(m.coordinate for m in f_msm[0]), { Coordinate(20), Coordinate(30), Coordinate(40), Coordinate(50), Coordinate(60) }) self.assertSetEqual( set(m.coordinate for m in f_msm[1]), { Coordinate(1), Coordinate(2), Coordinate(3), Coordinate(4), Coordinate(5) })
def test_3parameters_reversed(self): experiment = read_text_file('data/text/three_parameter_1.txt') modeler = MultiParameterModeler() measurements = experiment.measurements[(Callpath('reg'), Metric('metr'))] measurements = list(reversed(measurements)) f_msm = modeler.find_first_measurement_points(measurements) self.assertEqual(len(f_msm), 3) self.assertListEqual([m.coordinate for m in f_msm[0]], [ Coordinate(60), Coordinate(50), Coordinate(40), Coordinate(30), Coordinate(20) ]) self.assertListEqual([m.coordinate for m in f_msm[1]], [ Coordinate(5), Coordinate(4), Coordinate(3), Coordinate(2), Coordinate(1) ]) self.assertListEqual([m.coordinate for m in f_msm[2]], [ Coordinate(500), Coordinate(400), Coordinate(300), Coordinate(200), Coordinate(100) ])
def test_2parameters_reversed(self): experiment = read_text_file('data/text/two_parameter_1.txt') modeler = MultiParameterModeler() measurements = experiment.measurements[(Callpath('reg'), Metric('metr'))] measurements = list(reversed(measurements)) f_msm = modeler.find_first_measurement_points(measurements) self.assertEqual(len(f_msm), 2) self.assertListEqual([m.coordinate for m in f_msm[0]], [ Coordinate((60, )), Coordinate((50, )), Coordinate((40, )), Coordinate((30, )), Coordinate((20, )) ]) self.assertListEqual([m.coordinate for m in f_msm[1]], [ Coordinate((5, )), Coordinate((4, )), Coordinate((3, )), Coordinate((2, )), Coordinate((1, )) ])
def test_3parameters_bands_incomplete(self): experiment = read_jsonlines_file('data/jsonlines/matrix_3p_bands_incomplete.jsonl') modeler = MultiParameterModeler() measurements = experiment.measurements[(Callpath('<root>'), Metric('metr'))] f_msm = modeler.find_first_measurement_points(measurements) self.assertEqual(len(f_msm), 3) self.assertListEqual([m.coordinate for m in f_msm[0]], [ Coordinate(c) for c in [1, 3, 4, 5, 6] ]) self.assertListEqual([0] + [1] * 4, [m.mean for m in f_msm[0]]) self.assertListEqual([m.coordinate for m in f_msm[1]], [ Coordinate(c) for c in range(1, 5 + 1) ]) self.assertListEqual([0] + [2] * 4, [m.mean for m in f_msm[1]]) self.assertListEqual([m.coordinate for m in f_msm[2]], [ Coordinate(c) for c in range(1, 5 + 1) ]) self.assertListEqual([0] + [4] * 4, [m.mean for m in f_msm[2]]) measurements.reverse() f_msm = modeler.find_best_measurement_points(measurements) self.assertEqual(len(f_msm), 3) self.assertListEqual([m.coordinate for m in f_msm[0]], [ Coordinate(c) for c in reversed([1, 3, 4, 5, 6]) ]) self.assertListEqual([1] * 4 + [0], [m.mean for m in f_msm[0]]) self.assertListEqual([m.coordinate for m in f_msm[1]], [ Coordinate(c) for c in [6, 5, 4, 3, 2] ]) self.assertListEqual([3] * 5, [m.mean for m in f_msm[1]]) self.assertListEqual([m.coordinate for m in f_msm[2]], [ Coordinate(c) for c in reversed(range(1, 5 + 1)) ]) self.assertListEqual([4] * 4 + [0], [m.mean for m in f_msm[2]])