From 605c0ff07befb657bccc7951e8a7cf58f8e060e2 Mon Sep 17 00:00:00 2001 From: Kyle Shores Date: Sat, 7 Dec 2024 12:16:38 -0600 Subject: [PATCH] day7 templte --- 2024/src/day7.cpp | 93 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 2024/src/day7.cpp diff --git a/2024/src/day7.cpp b/2024/src/day7.cpp new file mode 100644 index 0000000..7f77271 --- /dev/null +++ b/2024/src/day7.cpp @@ -0,0 +1,93 @@ +#include +#include +#include +#include +#include +#include + +struct Data { + +}; + +int part1(const Data &data) +{ + return 0; +} + +int part2(const Data &data) +{ + return 0; +} + +Data parse() +{ + std::ifstream file(std::filesystem::path("inputs/day7.txt")); + if (!file.is_open()) + { + throw std::runtime_error("file not found"); + } + std::string line; + Data data; + + while (std::getline(file, line)) + { + } + + return data; +} + +class BenchmarkFixture : public benchmark::Fixture +{ +public: + static Data data; +}; + +Data BenchmarkFixture::data = parse(); + +BENCHMARK_DEFINE_F(BenchmarkFixture, Part1Benchmark) +(benchmark::State &state) +{ + for (auto _ : state) + { + int s = part1(data); + benchmark::DoNotOptimize(s); + } +} + +BENCHMARK_DEFINE_F(BenchmarkFixture, Part2Benchmark) +(benchmark::State &state) +{ + for (auto _ : state) + { + int s = part2(data); + benchmark::DoNotOptimize(s); + } +} + +BENCHMARK_REGISTER_F(BenchmarkFixture, Part1Benchmark); +BENCHMARK_REGISTER_F(BenchmarkFixture, Part2Benchmark); + +int main(int argc, char **argv) +{ + Data data = parse(); + + int answer1 = 0; + int answer2 = 0; + + auto first = part1(data); + std::cout << "Part 1: " << first << std::endl; + + auto second = part2(data); + std::cout << "Part 2: " << second << std::endl; + + first != answer1 ? throw std::runtime_error("Part 1 incorrect") : nullptr; + second != answer2 ? throw std::runtime_error("Part 2 incorrect") : nullptr; + + for (int i = 1; i < argc; ++i) { + if (std::string(argv[i]) == "--benchmark") { + benchmark::Initialize(&argc, argv); + benchmark::RunSpecifiedBenchmarks(); + return 0; + } + } +} \ No newline at end of file