예제 #1
0
 def setUp(self):
     self.same = SameRunsKirov()
예제 #2
0
class PositiveTestsKirov(unittest.TestCase):
    def setUp(self):
        self.same = SameRunsKirov()

    def test_allsame(self):
        runs = []
        for i in range(4):
            runs.append(Run(0, 0, i + 1, '100', '100', "OK"))

        submits = []
        for i in range(10):
            submits.append(Submit(i, (0, 0), 0, 0, runs, 0, 'ACM', 37))

        for submit in submits:
            self.same.visit(submit)

        # sample = ("10 10 10 10\n" +
        # "10 10 10 10\n" +
        #           "10 10 10 10\n" +
        #           "10 10 10 10\n")

        self.assertEqual(self.same.pretty_print(), 'Submits - 10\nEquivalent tests: {1 2 3 4}\n'
                                                   'we recommend removing: 3/4 (75%) {2 3 4}\nit will save: 3sec/4sec (75%)\n')

    def test_mixed(self):
        runs = []
        runs.append(Run(0, 0, 1, '100', '100', "OK"))
        runs.append(Run(0, 0, 2, '100', '100', "WA"))
        runs.append(Run(0, 0, 3, '100', '100', "WA"))
        runs.append(Run(0, 0, 4, '100', '100', "WA"))

        submits = []
        for i in range(10):
            submits.append(Submit(i, (0, 0), 0, 0, runs, 0, 'ACM', 37))

        # sample = ("10 0 0 0\n"   +
        # "0 10 10 10\n" +
        #           "0 10 10 10\n" +
        #           "0 10 10 10\n")

        for submit in submits:
            self.same.visit(submit)

        self.assertEqual(self.same.pretty_print(), 'Submits - 10\nEquivalent tests: {2 3 4}\nUnique tests: {1}\n'
                                                   'we recommend removing: 2/4 (50%) {3 4}\nit will save: 2sec/4sec (50%)\n')

    def test_different(self):
        runs = []
        runs.append(Run(0, 0, 1, '100', '100', "OK"))
        runs.append(Run(0, 0, 2, '100', '100', "WA"))
        runs.append(Run(0, 0, 3, '100', '100', "OK"))
        runs.append(Run(0, 0, 4, '100', '100', "WA"))

        submits = []
        for i in range(10):
            submits.append(Submit(i, (0, 0), 0, 0, runs, 0, 'ACM', 37))

        for submit in submits:
            self.same.visit(submit)

        # sample = ("10 0 10 0\n" +
        # "0 10 0 10\n" +
        #           "10 0 10 0\n" +
        #           "0 10 0 10\n")

        self.assertEqual(self.same.pretty_print(), 'Submits - 10\nEquivalent tests: {1 3} {2 4}\nwe recommend '
                                                   'removing: 2/4 (50%) {3 4}\nit will save: 2sec/4sec (50%)\n')

    def test_difruns(self):
        runs = []
        runs.append(Run(0, 0, 1, '100', '100', "OK"))
        runs.append(Run(0, 0, 2, '100', '100', "WA"))
        runs.append(Run(0, 0, 3, '100', '100', "OK"))
        runs.append(Run(0, 0, 4, '100', '100', "WA"))

        submits = []
        for i in range(4):
            submits.append(Submit(i, (0, 0), 0, 0, runs[:2], 0, 'ACM', 37))
            submits.append(Submit(i, (0, 0), 0, 0, runs, 0, 'ACM', 37))
        submits.append(Submit(i, (0, 0), 0, 0, runs[:1], 0, 'ACM', 37))
        submits.append(Submit(i, (0, 0), 0, 0, runs[:1], 0, 'ACM', 37))

        for submit in submits:
            self.same.visit(submit)

        # sample = ("10 0 4 0\n" +
        # "0 8 0 4\n"  +
        #           "4 0 4 0\n"  +
        #           "0 4 0 4\n")

        self.assertEqual(self.same.pretty_print(), 'Submits - 10\nUnique tests: {1 2}\n')