From 5e1e787e210e879600d25c5580a7a5b43336d634 Mon Sep 17 00:00:00 2001
From: GordiyevskikDA <gordiyevskikda@mpei.ru>
Date: Sat, 16 Mar 2024 06:52:26 +0300
Subject: [PATCH] =?UTF-8?q?code:=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5?=
 =?UTF-8?q?=D0=BD=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9?=
 =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 unittest.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/unittest.cpp b/unittest.cpp
index a317f71..13ed78d 100644
--- a/unittest.cpp
+++ b/unittest.cpp
@@ -1,7 +1,9 @@
 #define DOCTEST_CONFIG_NO_MULTITHREADING
 #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
 #include "doctest.h"
+#include <vector>
 #include "histogram_internal.h"
+using namespace std;
 
 TEST_CASE("distinct positive numbers") {
     double min = 0;
@@ -9,4 +11,45 @@ TEST_CASE("distinct positive numbers") {
     FindMinMax({ 1, 2 }, min, max);
     CHECK(min == 1);
     CHECK(max == 2);
+}
+
+/*
+Если вектор пуст, искусственно добавляем в него значения
+Проверяем, равны ли min и max этим искусственным значениям
+*/
+TEST_CASE("empty vector") {
+    double min = 0;
+    double max = 0;
+    vector <double> fortest;
+    if (fortest.size() == 0) {
+        fortest.push_back(90);
+        fortest.push_back(100);
+    }
+    FindMinMax(fortest, min, max);
+    CHECK(min != 90);
+    CHECK(max != 100);
+}
+
+TEST_CASE("one element") {
+    double min = 0;
+    double max = 0;
+    FindMinMax({ 1 }, min, max);
+    CHECK(min == 1);
+    CHECK(max == 1);
+}
+
+TEST_CASE("negative elements") {
+    double min = 0;
+    double max = 0;
+    FindMinMax({ -81, 2 }, min, max);
+    CHECK(min == -81);
+    CHECK(max == 2);
+}
+
+TEST_CASE("simular elements") {
+    double min = 0;
+    double max = 0;
+    FindMinMax({ 23, 23, 23 }, min, max);
+    CHECK(min == 23);
+    CHECK(max == 23);
 }
\ No newline at end of file