Добавил модули проверки

master
MrDarkLast 2 лет назад
Родитель f5eea5e1dd
Сommit 4351ee1abe

@ -1,7 +1,8 @@
#include <vector> #include <vector>
#include "histogram.h" #include "histogram_internal.h"
using namespace std; using namespace std;
/*
vector<size_t> make_histogram(const vector<double>& numbers, size_t bin_count) { vector<size_t> make_histogram(const vector<double>& numbers, size_t bin_count) {
vector<size_t> bins(bin_count); vector<size_t> bins(bin_count);
@ -42,9 +43,18 @@ vector<size_t> make_histogram(const vector<double>& numbers, size_t bin_count) {
} }
} }
return bins; return bins;
} } */
bool find_minmax(const vector<double>& numbers, double& min, double& max) {
if (numbers.size() == 0) {
return false;
}
for (auto i = 0; i < numbers.size(); i++) {
if (
numbers[i] < 0
) return false;
}
void find_minmax(const vector<double>& numbers, double& min, double& max) {
min = numbers[0]; min = numbers[0];
for (auto i = 0; i < numbers.size(); i++) { for (auto i = 0; i < numbers.size(); i++) {
if (numbers[i] < min) { if (numbers[i] < min) {
@ -58,5 +68,5 @@ void find_minmax(const vector<double>& numbers, double& min, double& max) {
max = numbers[i]; max = numbers[i];
} }
} }
return true;
} }

@ -1,4 +1,4 @@
#pragma once #pragma once
#include <vector> #include <vector>
void find_minmax(const std::vector<double>& numbers, double& min, double& max); bool find_minmax(const std::vector<double>& numbers, double& min, double& max);

@ -0,0 +1,19 @@
#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);
find_minmax({ 1 }, min, max);
CHECK(min == max);
CHECK(find_minmax({ -1 }, min, max) == false);
find_minmax({ 2, 2, 2, 2 }, min, max);
CHECK(min == max);
}

@ -17,7 +17,6 @@
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion> <VCProjectVersion>16.0</VCProjectVersion>
@ -53,11 +52,10 @@
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
<ImportGroup Label="Shared" > <ImportGroup Label="Shared">
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@ -71,9 +69,7 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
@ -130,8 +126,13 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup>
<ItemGroup></ItemGroup> <ClCompile Include="histogram.cpp" />
<ClCompile Include="unittest.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="histogram_internal.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>

@ -14,4 +14,17 @@
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ClCompile Include="unittest.cpp">
<Filter>Исходные файлы</Filter>
</ClCompile>
<ClCompile Include="histogram.cpp">
<Filter>Исходные файлы</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="histogram_internal.h">
<Filter>Исходные файлы</Filter>
</ClInclude>
</ItemGroup>
</Project> </Project>
Загрузка…
Отмена
Сохранить