diff --git a/histogram.cpp b/histogram.cpp index 0bf4fff..c9f2f44 100644 --- a/histogram.cpp +++ b/histogram.cpp @@ -2,29 +2,11 @@ using namespace std; -static void -find_minmax(const std::vector& numbers, double& Min, double& Max) { - Min = numbers[0]; - Max = numbers[0]; - for(size_t x : numbers) - { - if(x < Min) - { - Min = x; - }else - { - if(x > Max) - { - Max = x; - } - } - } -} std::vector make_histogram(std::vector numbers, size_t bin_count) { std::vector bins(bin_count); double Min, Max; - find_minmax(numbers, Min, Max); + // find_minmax(numbers, Min, Max); double bin_size = (Max - Min) / bin_count; for (double x : numbers) { diff --git a/histogram_internal.h b/histogram_internal.h new file mode 100644 index 0000000..a312935 --- /dev/null +++ b/histogram_internal.h @@ -0,0 +1,23 @@ +#ifndef HISTOGRAM_INTERNAL_H_INCLUDED +#define HISTOGRAM_INTERNAL_H_INCLUDED + +void +find_minmax(const std::vector& numbers, double& Min, double& Max) { + Min = numbers[0]; + Max = numbers[0]; + for(size_t x : numbers) + { + if(x < Min) + { + Min = x; + }else + { + if(x > Max) + { + Max = x; + } + } + } +} + +#endif // HISTOGRAM_INTERNAL_H_INCLUDED diff --git a/unittest.cpp b/unittest.cpp new file mode 100644 index 0000000..a9ba7e5 --- /dev/null +++ b/unittest.cpp @@ -0,0 +1,12 @@ +#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); +}