В этом примере показано, как проверить функцию, созданную путем написания сценария в реальном времени. 'TestRightTriLiveScriptExample.mlx'. В примере функция вычисляет углы прямого треугольника, и для проверки функции создается единичный тест на основе живого сценария.
Проверка на основе сценария в реальном времени должна соответствовать следующим соглашениям:
Имя тестового файла должно начинаться или заканчиваться словом «test», которое не учитывает регистр. Если имя файла не начинается или не заканчивается словом «test», то в некоторых случаях тесты в файле могут игнорироваться.
Поместите каждый единичный тест в отдельный раздел файла сценария. Если раздел имеет заголовок в стиле Heading 1, заголовок становится именем тестового элемента. В противном случае MATLAB присваивает тесту имя.
Рассмотрим, как выполняется тест на основе сценариев в реальном времени. Если тест выполняется с помощью кнопок Run в интерактивном редакторе, и MATLAB обнаруживает сбой теста, то он останавливает выполнение сценария и не выполняет оставшиеся тесты. При запуске сценария в реальном времени с использованием инфраструктуры модульного тестирования, например, с помощью runtests функция, то если MATLAB обнаруживает сбой теста, он по-прежнему выполняет оставшиеся тесты.
При запуске сценария в реальном времени в качестве теста переменные, определенные в одном тесте, недоступны в других тестах. Аналогично, переменные, определенные в других рабочих пространствах, недоступны для тестов.
Вне этого примера в текущей папке MATLAB создайте функцию в файле, rightTri.m. Эта функция принимает длины двух сторон треугольника в качестве входных данных и возвращает три угла соответствующего прямого треугольника. Входные стороны являются двумя более короткими кромками треугольника, а не гипотенузой.
type rightTri.mfunction angles = rightTri(sides) A = atand(sides(1)/sides(2)); B = atand(sides(2)/sides(1)); hypotenuse = sides(1)/sind(A); C = asind(hypotenuse*sind(A)/sides(1)); angles = [A B C]; end
Для документирования теста можно включить уравнения и изображения в сценарий в реальном времени. Создайте следующий тест для аппроксимации малого угла. Обычно при сравнении значений с плавающей запятой задается допуск для сравнения.
rightTri функция должна возвращать значения, согласующиеся с аппроксимацией малого угла, так что ≈θ.

angles = rightTri([1 1500]); smallAngleInRadians = (pi/180)*angles(1); % convert to radians approx = sin(smallAngleInRadians); assert(abs(approx-smallAngleInRadians) <= 1e-10, 'Problem with small angle approximation')
Вы можете иметь несколько assert в том же тесте. Однако если первое утверждение завершается неуспешно, MATLAB не оценивает остальные операторы.
Сумма всех углов результирующего прямого треугольника всегда должна быть 180 градусов.
angles = rightTri([7 9]); assert(sum(angles) == 180) angles = rightTri([4 4]); assert(sum(angles) == 180) angles = rightTri([2 2*sqrt(3)]); assert(sum(angles) == 180)

Проверьте, что стороны треугольника уменьшаются до 1 и . В этом случае углы равны .
tol = 1e-10; angles = rightTri([2 2*sqrt(3)]); assert(abs(angles(1)-30) <= tol) assert(abs(angles(2)-60) <= tol) assert(abs(angles(3)-90) <= tol)
Для равнобедренных треугольников оба непрямых угла должны быть 45 градусов; иначе assert выдает ошибку.
Проверьте, что две стороны треугольника равны. В этом случае соответствующие углы равны.
angles = rightTri([4 4]); assert(angles(1) == 45) assert(angles(1) == angles(2))
Для выполнения тестов рекомендуется использовать платформу тестирования через runtests вместо кнопки «Выполнить» в интерактивном редакторе. Структура тестирования предоставляет дополнительную диагностическую информацию. В случае сбоя теста фреймворк выполняет последующие тесты, но кнопка Run в Live Editor не используется. Например, чтобы запустить этот тест в командной строке MATLAB, введите result = runtests('TestRightTriLiveScriptExample'). Дополнительные сведения см. в разделе runtests.