Напишите тесты для функции calculateTriangleArea с использованием Google Test.
Проверьте корректность вычисления площади для различных треугольников.
Убедитесь, что функция правильно обрабатывает граничные случаи (например, отрицательные значения длин сторон).
Добавьте тесты для ситуаций, когда треугольник является вырожденным (например, сумма длин двух сторон равна третьей).
функция, которая принимает длины сторон треугольника в качестве входных данных и возвращает значение его площади.
Пример использования функции:
#include <iostream>
#include <cmath>
double calculateTriangleArea(double side1, double side2, double side3) {
double p = (side1 + side2 + side3) / 2.0;
return sqrt(p * (p - side1) * (p - side2) * (p - side3));
int main() {
double side1, side2, side3;
std::cout << "Введите длину первой стороны треугольника: ";
std::cin >> side1;
std::cout << "Введите длину второй стороны треугольника: ";
std::cin >> side2;
std::cout << "Введите длину третьей стороны треугольника: ";
std::cin >> side3;
double area = calculateTriangleArea(side1, side2, side3);
std::cout << "Площадь треугольника: " << area << std::endl;
return 0;
}
Тестирование для функции isTriangle
isTriangle - проверяет существование треугольника
Напишите тесты для функции isTriangleс использованием Google Test.
Проверьте корректность определения существования для различных треугольников.
Убедитесь, что функция правильно обрабатывает граничные случаи (например, отрицательные значения длин сторон).
Добавьте тесты для ситуаций, когда треугольник является вырожденным (например, сумма длин двух сторон равна третьей).
и на свое усмотрение дополнительные тесты
реализации функции
bool isTriangle(double a, double b, double c) {
// Проверяем неравенство треугольника:
// Сумма двух любых сторон должна быть больше третьей стороны.
return (a + b > c) && (a + c > b) && (b + c > a);
}
Тестирование на интеграцию этих двух функций (чуть позже вместе сделаем)
модуль содержит:
#include <iostream>
#include <cmath>
// Функция для вычисления площади треугольника по длинам его сторон
double calculateTriangleArea(double side1, double side2, double side3) {
double p = (side1 + side2 + side3) / 2.0;
return sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
// Функция для проверки, является ли заданный набор сторон треугольником
bool isTriangle(double side1, double side2, double side3) {
return (side1 + side2 > side3) && (side1 + side3 > side2) && (side2 + side3 > side1);
}
// Функция для взаимодействия с пользователем и вычисления площади треугольника
void calculateTriangleAreaInterface(double side1, double side2, double side3) {
if (isTriangle(side1, side2, side3)) {
double area = calculateTriangleArea(side1, side2, side3);
std::cout << "Площадь треугольника: " << area << std::endl;
} else {
std::cout << "Треугольник с такими сторонами не существует.\n";
}
}
главная функция определена в файле main.py
// Основная функция для работы с интерфейсом
int main() {
char choice;
do {
std::cout << "Выберите действие:\n";
std::cout << "1. Вычислить площадь треугольника\n";
std::cout << "2. Выйти\n";
std::cout << "Ваш выбор: ";
std::cin >> choice;
switch(choice) {
case '1':
double side1, side2, side3;
std::cout << "Введите длину первой стороны треугольника: ";
std::cin >> side1;
std::cout << "Введите длину второй стороны треугольника: ";
std::cin >> side2;
std::cout << "Введите длину третьей стороны треугольника: ";
std::cin >> side3;
calculateTriangleAreaInterface(side1, side2, side3);
break;
case '2':
std::cout << "Выход...\n";
break;
default:
std::cout << "Неверный выбор. Попробуйте ещё раз.\n";
}
} while (choice != '2');
return 0;
}