15
15
namespace aoc ::day21::test {
16
16
17
17
std::vector<Key> operator " " _k(const char *chars, std::size_t len) {
18
- std::vector<Key> keys;
19
18
std::istringstream iss (std::string{chars, len});
20
- Key key{};
21
- while (iss >> key) {
22
- keys.push_back (key);
23
- }
24
- return keys;
19
+ return aoc::read_vector<Key>(iss);
25
20
}
26
21
27
22
std::size_t test_move_arm () {
@@ -45,21 +40,20 @@ std::size_t test_move_arm() {
45
40
std::size_t test_control_arm () {
46
41
unit_test::PureTest test (" aoc::day21::control_arm" , &control_arm);
47
42
48
- using enum Key;
49
43
test (" ^" _k, " <A" _k);
50
44
test (" >" _k, " vA" _k);
51
45
test (" v" _k, " <vA" _k);
52
46
test (" <" _k, " v<<A" _k);
53
47
54
48
test (" ^A" _k, " <A>A" _k);
55
- test ({RIGHT, ACTIVATE} , " vA^A" _k);
56
- test ({DOWN, ACTIVATE} , " <vA^>A" _k);
57
- test ({LEFT, ACTIVATE} , " v<<A>>^A" _k);
49
+ test (" >A " _k , " vA^A" _k);
50
+ test (" vA " _k , " <vA^>A" _k);
51
+ test (" <A " _k , " v<<A>>^A" _k);
58
52
59
- test ({UP, DOWN} , " <AvA" _k);
60
- test ({UP, LEFT} , " <Av<A" _k);
53
+ test (" ^v " _k , " <AvA" _k);
54
+ test (" ^< " _k , " <Av<A" _k);
61
55
62
- test ({UP, UP, UP} , " <AAA" _k);
56
+ test (" ^^^ " _k , " <AAA" _k);
63
57
test (" <<>>^A>" _k, " v<<AA>>AA<^A>AvA" _k);
64
58
65
59
return test.done (), test.num_failed ();
0 commit comments