AoC code coverage
Current view: top level - puzzles/2019 - Day02.cpp (source / functions) Coverage Total Hit
Test: master Lines: 100.0 % 27 27
Test Date: 2025-07-28 10:53:57 Functions: 100.0 % 2 2

            Line data    Source code
       1              : #include "Intcode.h"
       2              : #include "Parsing.h"
       3              : #include "PuzzleImpl.h"
       4              : 
       5              : namespace {} // namespace
       6              : 
       7            1 : template <> size_t part1<2019, 2>(std::string_view const input) {
       8            1 :   Computer c(input);
       9            1 :   c.writeMemory(1, 12);
      10            1 :   c.writeMemory(2, 2);
      11            1 :   ASSERT(c.run() == Computer::HALTED);
      12            1 :   return c.readMemory(0);
      13            1 : }
      14              : 
      15            1 : template <> size_t part2<2019, 2>(std::string_view const input) {
      16            1 :   constexpr int64_t expectedResult = 19690720;
      17            1 :   Computer c(input);
      18            1 :   std::vector<int64_t> const originalMemory = c.memdump();
      19            1 :   int64_t noun = 0;
      20            1 :   int64_t verb = 0;
      21           42 :   for (; noun < 100; ++noun) {
      22         4154 :     for (verb = 0; verb < 100; ++verb) {
      23         4113 :       c.reset(originalMemory);
      24         4113 :       c.writeMemory(1, noun);
      25         4113 :       c.writeMemory(2, verb);
      26         4113 :       ASSERT(c.run() == Computer::HALTED);
      27         4113 :       if (c.readMemory(0) == expectedResult)
      28            1 :         break;
      29         4113 :     }
      30           42 :     if (c.readMemory(0) == expectedResult)
      31            1 :       break;
      32           42 :   }
      33              :   ASSERT(c.readMemory(0) == expectedResult);
      34            1 :   return 100 * noun + verb;
      35            1 : }
        

Generated by: LCOV version 2.0-1