Сравнить коммиты

...

7 Коммитов

3
.gitignore поставляемый

@ -1,3 +1,6 @@
/curl.h
/Debug
/curl/
/03-scaling.actual.txt
/03-scaling.expected.txt
/03-scaling.input.txt

@ -4,7 +4,7 @@
#include "histogram.h"
using namespace std;
void find_minmax(const vector<double>& numbers, double& min, double& max) {
bool find_minmax(const vector<double>& numbers, double& min, double& max) {
if (numbers.size() != 0)
{
min = numbers[0];
@ -20,7 +20,9 @@ void find_minmax(const vector<double>& numbers, double& min, double& max) {
max = x;
}
}
return true;
}
return false;
}
void find_max_capacity(const vector<size_t>& bins, size_t& max_bin_capacity)

@ -1,4 +1,4 @@
#pragma once
#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);

@ -85,16 +85,24 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
<ExternalIncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath)</ExternalIncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>D:/prg/lab03/curl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>D:\prg\lab03\curl\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(CoreLibraryDependencies);libcurl.dll.a;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -105,12 +113,15 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>D:/prg/lab03/curl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>D:\prg\lab03\curl\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(CoreLibraryDependencies);libcurl.dll.a;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -119,10 +130,13 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>D:/prg/lab03/curl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>D:\prg\lab03\curl\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(CoreLibraryDependencies);libcurl.dll.a;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -133,13 +147,25 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalModuleDependencies>
</AdditionalModuleDependencies>
<AdditionalIncludeDirectories>D:/prg/lab03/curl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>D:\prg\lab03\curl\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(CoreLibraryDependencies);libcurl.dll.a;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<CustomBuildStep>
<Inputs>
</Inputs>
</CustomBuildStep>
<ProjectReference>
<UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
</ProjectReference>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

@ -4,29 +4,54 @@
#include "histogram.h"
#include "text.h"
#include "svg.h"
#include <curl/curl.h>
using namespace std;
struct Input {
vector<double> numbers;
size_t bin_count{};
};
Input input_data() {
Input input_data(istream& in_stream, bool prompt) {
Input in;
size_t number_count;
cin >> number_count;
if (prompt) {
cerr << "Введите количество значений";
}
in_stream >> number_count;
in.numbers.resize(number_count);
if (prompt) {
cerr << "Введите значения";
}
for (size_t i = 0; i < number_count; i++) {
cin >> in.numbers[i];
in_stream >> in.numbers[i];
}
cin >> in.bin_count;
if (prompt) {
cerr << "Введите количество столбцов гистограммы";
}
in_stream >> in.bin_count;
return in;
}
int main()
int main(int argc, char* argv[])
{
if (argc > 1) {
CURL* curl = curl_easy_init();
if (curl) {
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
res = curl_easy_perform(curl);
if (res != 0) {
cerr << curl_easy_strerror(res);
exit(1);
}
}
curl_easy_cleanup(curl);
return 0;
}
curl_global_init(CURL_GLOBAL_ALL);
const size_t SCREEN_WIDTH = 80;
const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
auto in = input_data();
auto in = input_data(cin, false);
vector<double> numbers_data = in.numbers;
auto bins = make_histogram(in.numbers, in.bin_count);
show_histogram_svg(bins, in.numbers, in.bin_count);

@ -15,9 +15,7 @@ TEST_CASE("distinct positive numbers") {
TEST_CASE("empty vector") {
double min = 0;
double max = 0;
find_minmax({}, min, max);
CHECK(min == 0);
CHECK(max == 0);
CHECK(!find_minmax({}, min, max));
}
TEST_CASE("negative values") {

Загрузка…
Отмена
Сохранить