diff --git a/unittest.cbp b/unittest.cbp
new file mode 100644
index 0000000..7f9621b
--- /dev/null
+++ b/unittest.cbp
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+	<FileVersion major="1" minor="6" />
+	<Project>
+		<Option title="unittest" />
+		<Option pch_mode="2" />
+		<Option compiler="gcc" />
+		<Build>
+			<Target title="Debug">
+				<Option output="bin/Debug/unittest" prefix_auto="1" extension_auto="1" />
+				<Option object_output="obj/Debug/" />
+				<Option type="1" />
+				<Option compiler="gcc" />
+				<Compiler>
+					<Add option="-g" />
+				</Compiler>
+			</Target>
+			<Target title="Release">
+				<Option output="bin/Release/unittest" prefix_auto="1" extension_auto="1" />
+				<Option object_output="obj/Release/" />
+				<Option type="1" />
+				<Option compiler="gcc" />
+				<Compiler>
+					<Add option="-O2" />
+				</Compiler>
+				<Linker>
+					<Add option="-s" />
+				</Linker>
+			</Target>
+		</Build>
+		<Compiler>
+			<Add option="-Wall" />
+		</Compiler>
+		<Extensions>
+			<lib_finder disable_auto="1" />
+		</Extensions>
+	</Project>
+</CodeBlocks_project_file>
diff --git a/unittest.cpp b/unittest.cpp
new file mode 100644
index 0000000..d16e33b
--- /dev/null
+++ b/unittest.cpp
@@ -0,0 +1,40 @@
+#define DOCTEST_CONFIG_NO_MULTITHREADING
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+#include "doctest.h"
+#include "histogram_internal.h"
+
+TEST_CASE("distinct positive numbers") {
+    double min = 0;
+    double max = 0;
+    find_minmax({1, 2}, min, max);
+    CHECK(min == 1);
+    CHECK(max == 2);
+}
+TEST_CASE("empty vector") {
+    double min = 0;
+    double max = 0;
+    find_minmax({NULL}, min, max);
+    CHECK(min == 0);
+    CHECK(max == 0);
+}
+TEST_CASE("one element") {
+    double min = 0;
+    double max = 0;
+    find_minmax({1}, min, max);
+    CHECK (min == 1);
+    CHECK (max == 1);
+}
+TEST_CASE("negative elements") {
+    double min = 0;
+    double max = 0;
+    find_minmax({-1, -2}, min, max);
+    CHECK (min == -2);
+    CHECK (max == -1);
+}
+TEST_CASE("same elements") {
+    double min = 0;
+    double max = 0;
+    find_minmax({1, 1, 1}, min, max);
+    CHECK (min == 1);
+    CHECK (max == 1);
+}