Exemplo n.º 1
0
class TestSolver(unittest.TestCase):
    def setUp(
            self
    ):  # настройка параметров тестов, запускается перед каждым тестом
        self.test_table = []
        test_table = self.test_table
        test_table.append(Sigma([2, 3], 1, 2))
        test_table.append(Sigma([5, 5], 2, 4))
        test_table.append(Sigma([9, 7], 3, 7))
        test_table.append(Sigma([6, 8], 4, 8))
        test_table.append(Sigma([10, 10], 4, 11))
        test_table.append(Sigma([8, 12], 5, 11))
        test_table.append(Sigma([11, 11], 5, 11))
        self.test_task = Task()
        self.test_task.set_task_data(
            5, 11, [[2, 3, 4, 1, 2], [3, 2, 2, 3, 4], [2, 2, 3, 4, 3]])
        self.solver = Solver(test_table, self.test_task)

    def test_get_less_or_equal_record_6_8(self):
        u = [6, 8]
        ksi = 4
        eta = 8
        answer = self.solver.get_less_or_equal_record(u, ksi, eta)
        correct_answer = Sigma([6, 8], 4, 8)
        self.assertEqual(answer.u, correct_answer.u)
        self.assertEqual(answer.ksi, correct_answer.ksi)
        self.assertEqual(answer.eta, correct_answer.eta)

    def test_get_less_or_equal_record_10_10(self):
        u = [10, 10]
        ksi = 5
        eta = 12
        answer = self.solver.get_less_or_equal_record(u, ksi, eta)
        correct_answer = Sigma(u, 4, 11)
        self.assertEqual(answer.u, correct_answer.u)
        self.assertEqual(answer.ksi, correct_answer.ksi)
        self.assertEqual(answer.eta, correct_answer.eta)

    def test_set_x_ksi_to_one(self):
        for x in range(self.test_task.dimension):
            with self.subTest(x=x):
                correct_answer = []
                self.setUp()
                for i in range(self.test_task.dimension):
                    correct_answer.append(0)  # забили нулями
                correct_answer[x] = 1  # установили нужный х в единицу
                self.solver.set_x_ksi_to_one(x + 1)
                self.assertEqual(self.solver.get_solution(), correct_answer)

    def test_change_u_vector(self):
        self.solver.u = [8, 12]
        self.solver.ksi = 5
        self.solver.eta = 11
        self.solver.change_u_vector()
        self.assertEqual(self.solver.u, [6, 8])

        self.solver.change_ksi_and_eta()
        self.solver.change_u_vector()
        self.assertEqual(self.solver.u, [5, 5])

    def test_calculate(self):
        self.solver.calculate()
        self.assertEqual(self.solver.get_solution(), [1, 1, 0, 1, 1])