Ejemplo n.º 1
0
    def test_update_trace_list(self) -> None:
        """Проверим, что все цели с корректными координатами могут сопровождаться, а с некоректными нет

        :return: None
        """
        # Определение нужных для функции данных
        # Создадим три цели, которые можем сопровождать
        first_target = Target(coordinates=np.array([10_000., 5_000., 1_000.]))
        second_target = Target(
            coordinates=np.array([30_000., 4_900., 30_000.]))
        third_target = Target(coordinates=np.array([55_000., 4_950., 3_000.]))
        # Создание тестируемого МФР
        mfr = MultiFunctionalRadar(
            target_list=[first_target, second_target, third_target])

        # Вызов тестируемой функции
        mfr.update_trace_list()

        # Проверка для длины массива трасс
        len_trace_list = len(mfr.trace_list)
        real_len_trace_list = 3
        self.assertEqual(real_len_trace_list, len_trace_list,
                         "Длина списка трасс определена неверно")

        # ______________________________________________________________________________________________________________
        # Если координаты целей стали некорректными, то и массив трасс должен измениться
        # Первую и вторую цель не можем сопровождать из-за некорректного азимута и угла места соответственно
        first_target.coordinates = np.array([10_000., 5_000., 30_000.])
        second_target.coordinates = np.array([1_000., 10_000., 1_000.])

        # Вызов тестируемой функции
        mfr.update_trace_list()

        # Проверка для длины массива трасс
        len_trace_list = len(mfr.trace_list)
        real_len_trace_list = 1
        self.assertEqual(real_len_trace_list, len_trace_list,
                         "Длина списка трасс определена неверно")

        # ______________________________________________________________________________________________________________
        # Если при этом координаты целей снова станут корректными, то сопровождение станет возможным
        first_target.coordinates = np.array([30_000., 5_000., 30_000.])
        second_target.coordinates = np.array([10_000., 5_000., 1_000.])

        # Вызов тестируемой функции
        mfr.update_trace_list()

        # Проверка для длины массива трасс
        len_trace_list = len(mfr.trace_list)
        real_len_trace_list = 3
        self.assertEqual(real_len_trace_list, len_trace_list,
                         "Длина списка трасс определена неверно")