/
plato
/
tests_init
Обзор
Документация
Войти
/
plato
/
tests_init
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ex2/tests.cpp
74 строки
3 KB
Evanivan
feat: ex1, ex2 done
21 окт 2025, 19:09
21 окт 2025, 19:09
0a5e99e
Код
Авторство
О чём код?
#define CATCH_CONFIG_MAIN #include "catch2/catch_all.hpp" #include "extended_array.h" TEST_CASE("Mean value") { SECTION("int numbers") { ExtArray<int> v1{4, 2, 7, 3, -5, 0, -3, 1}; REQUIRE(v1.mean() == 1.125); } } TEST_CASE("median value") { SECTION("real numbers") { ExtArray<double> v2{4.5, 0.7, 10.8, -3.5}; REQUIRE(v2.median() == 2.6); } } TEST_CASE("Mode value") { SECTION("int numbers") { ExtArray<int> v1{4, 2, 7, 2, 5, -5, 0, 5, 5}; REQUIRE(v1.mode().first == 5); } } TEST_CASE("Empty array") { SECTION("initializer_list") { ExtArray<int> v1{4, 2, 7, 2, 5, -5, 0, 5, 5}; REQUIRE(v1.size() == 9); } SECTION("size = 0") { ExtArray<int> v1(0); REQUIRE(v1.size() == 0); } SECTION("not empty") { ExtArray<int> v1{4, 2, 7}; REQUIRE(v1.size() != 0); } } TEST_CASE("Mean overloaded (left, right)") { ExtArray<int> v1{4, 2, 7, 2, 5, -5, 0, 5, 5}; SECTION("catching exception (invalid order args)") { REQUIRE_THROWS(v1.mean(4, 1)); // Проверяем, что исключение выбрасывается } SECTION("equal borders") { REQUIRE_THROWS(v1.mean(4, 4)); // Исключение при равных границах } SECTION("over right border") { REQUIRE_THROWS(v1.mean(1, 10)); // Исключение при выходе за границы } SECTION("negative left index") { REQUIRE_THROWS(v1.mean(-1, 3)); // Исключение при отрицательном индексе } SECTION("valid diap 4 nums") { REQUIRE_NOTHROW(v1.mean(1, 4)); // Убеждаемся, что исключения нет REQUIRE(v1.mean(1, 4) == 3.75); // И проверяем результат } } /* Перегрузите метод mean() таким образом, чтобы он вычислял среднее арифметическое для указанного диапазона массива. · Новый метод должен принимать начальный и конечный номер диапазона и возвращать среднее арифметическое значение только для данного диапазона. · Если значения для номеров указаны неверно (начальный номер больше или равен конечному), то метод должен возвращать исключение std:: invalid_argument. Создайте unit-тест для этого метода. Тест должен проверять результаты работы метода как с правильными номерами диапазона, так и с ошибочными. */