Esempio n. 1
0
    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)
                })
Esempio n. 2
0
    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)
        ])
Esempio n. 3
0
    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, ))
        ])
Esempio n. 4
0
    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]])