{"size": 2676, "ext": "js", "max_stars_repo_path": "lib/2019/14.test.js", "max_stars_repo_name": "alvaro-cuesta/aoc-js", "max_stars_repo_stars_event_min_datetime": "2020-12-05T16:46:51.000Z", "max_stars_repo_stars_event_max_datetime": "2021-12-05T20:53:59.000Z", "max_issues_repo_path": "lib/2019/14.test.js", "max_issues_repo_name": "alvaro-cuesta/aoc-js", "max_issues_repo_issues_event_min_datetime": "2020-07-21T12:49:21.000Z", "max_issues_repo_issues_event_max_datetime": "2020-12-05T13:30:01.000Z", "max_forks_repo_path": "lib/2019/14.test.js", "max_forks_repo_name": "alvaro-cuesta/aoc-js", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 2, "max_issues_count": 8, "max_forks_count": null, "avg_line_length": 22.8717948718, "max_line_length": 70, "alphanum_fraction": 0.5870702541}
const { describeDay } = require('../test-utils')

const EXAMPLE_INPUT_3 = `157 ORE => 5 NZVS
165 ORE => 6 DCFZ
44 XJWVT, 5 KHKGT, 1 QDVJ, 29 NZVS, 9 GPVTF, 48 HKGWZ => 1 FUEL
12 HKGWZ, 1 GPVTF, 8 PSHF => 9 QDVJ
179 ORE => 7 PSHF
177 ORE => 5 HKGWZ
7 DCFZ, 7 PSHF => 2 XJWVT
165 ORE => 2 GPVTF
3 DCFZ, 7 NZVS, 5 HKGWZ, 10 PSHF => 8 KHKGT
`

const EXAMPLE_INPUT_4 = `2 VPVL, 7 FWMGM, 2 CXFTF, 11 MNCFX => 1 STKFG
17 NVRVD, 3 JNWZP => 8 VPVL
53 STKFG, 6 MNCFX, 46 VJHF, 81 HVMC, 68 CXFTF, 25 GNMV => 1 FUEL
22 VJHF, 37 MNCFX => 5 FWMGM
139 ORE => 4 NVRVD
144 ORE => 7 JNWZP
5 MNCFX, 7 RFSQX, 2 FWMGM, 2 VPVL, 19 CXFTF => 3 HVMC
5 VJHF, 7 MNCFX, 9 VPVL, 37 CXFTF => 6 GNMV
145 ORE => 6 MNCFX
1 NVRVD => 8 CXFTF
1 VJHF, 6 MNCFX => 4 RFSQX
176 ORE => 6 VJHF
`

const EXAMPLE_INPUT_5 = `171 ORE => 8 CNZTR
7 ZLQW, 3 BMBT, 9 XCVML, 26 XMNCP, 1 WPTQ, 2 MZWV, 1 RJRHP => 4 PLWSL
114 ORE => 4 BHXH
14 VRPVC => 6 BMBT
6 BHXH, 18 KTJDG, 12 WPTQ, 7 PLWSL, 31 FHTLT, 37 ZDVW => 1 FUEL
6 WPTQ, 2 BMBT, 8 ZLQW, 18 KTJDG, 1 XMNCP, 6 MZWV, 1 RJRHP => 6 FHTLT
15 XDBXC, 2 LTCX, 1 VRPVC => 6 ZLQW
13 WPTQ, 10 LTCX, 3 RJRHP, 14 XMNCP, 2 MZWV, 1 ZLQW => 1 ZDVW
5 BMBT => 4 WPTQ
189 ORE => 9 KTJDG
1 MZWV, 17 XDBXC, 3 XCVML => 2 XMNCP
12 VRPVC, 27 CNZTR => 2 XDBXC
15 KTJDG, 12 BHXH => 5 XCVML
3 BHXH, 2 VRPVC => 7 MZWV
121 ORE => 7 VRPVC
7 XCVML => 6 RJRHP
5 BHXH, 4 VRPVC => 5 LTCX
`

describeDay(
  2019,
  14,

  907302,
  1670299,

  undefined,

  (part1) => {
    test('Example input 1', () => {
      expect.assertions(1)
      expect(
        part1(`10 ORE => 10 A
1 ORE => 1 B
7 A, 1 B => 1 C
7 A, 1 C => 1 D
7 A, 1 D => 1 E
7 A, 1 E => 1 FUEL
`),
      ).toEqual(31)
    })

    test('Example input 2', () => {
      expect.assertions(1)
      expect(
        part1(`9 ORE => 2 A
8 ORE => 3 B
7 ORE => 5 C
3 A, 4 B => 1 AB
5 B, 7 C => 1 BC
4 C, 1 A => 1 CA
2 AB, 3 BC, 4 CA => 1 FUEL
`),
      ).toEqual(165)
    })

    test('Example input 3', () => {
      expect.assertions(1)
      expect(part1(EXAMPLE_INPUT_3)).toEqual(13312)
    })

    test('Example input 4', () => {
      expect.assertions(1)
      expect(part1(EXAMPLE_INPUT_4)).toEqual(180697)
    })

    test('Example input 5', () => {
      expect.assertions(1)
      expect(part1(EXAMPLE_INPUT_5)).toEqual(2210736)
    })
  },

  (part2) => {
    test('Example input 3', () => {
      expect.assertions(1)
      expect(part2(EXAMPLE_INPUT_3)).toEqual(82892753)
    })

    test('Example input 4', () => {
      expect.assertions(1)
      expect(part2(EXAMPLE_INPUT_4)).toEqual(5586022)
    })

    test('Example input 5', () => {
      expect.assertions(1)
      expect(part2(EXAMPLE_INPUT_5)).toEqual(460664)
    })
  },
)
