1 /*
2 Copyright 2020-2022 René Ferdinand Rivera Morell
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6 */
7
8 #include "mini_test.hpp"
9 #include <lyra/lyra.hpp>
10 #include <vector>
11
main()12 int main()
13 {
14 using namespace lyra;
15 bfg::mini_test::scope test;
16
17 {
18 lyra::main()("-o", -1)(
19 args { "main", "-o", "5" },
20 [&](lyra::main & m)
21 {
22 test(REQUIRE(int(m["-o"]) == 5));
23 return 0;
24 });
25 }
26 {
27 lyra::main()("-o", -1)(
28 args { "main" },
29 [&](lyra::main & m)
30 {
31 test(REQUIRE(int(m["-o"]) == -1));
32 return 0;
33 });
34 }
35 {
36 lyra::main()("-o", -1.0f)(
37 args { "main", "-o", "5.0" },
38 [&](lyra::main & m)
39 {
40 test(REQUIRE(int(m["-o"]) == 5));
41 return 0;
42 });
43 }
44 {
45 lyra::main()("-o", -1.0f)(
46 args { "main" },
47 [&](lyra::main & m)
48 {
49 test(REQUIRE(int(m["-o"]) == -1));
50 return 0;
51 });
52 }
53 {
54 lyra::main()("-o", std::vector<int>())(
55 args { "main" },
56 [&](lyra::main & m)
57 {
58 std::vector<int> o = m["-o"];
59 test
60 (REQUIRE(o.size() == 0));
61 return 0;
62 });
63 }
64 {
65 lyra::main()("-o", std::vector<int>())(
66 args { "main", "-o0" },
67 [&](lyra::main & m)
68 {
69 std::vector<int> o = m["-o"];
70 test
71 (REQUIRE(o.size() == 1))
72 (REQUIRE(o[0] == 0));
73 return 0;
74 });
75 }
76 {
77 lyra::main()("-o", std::vector<int>())(
78 args { "main", "-o0", "-o1", "-o2" },
79 [&](lyra::main & m)
80 {
81 std::vector<int> o = m["-o"];
82 test
83 (REQUIRE(o.size() == 3))
84 (REQUIRE(o[0] == 0))
85 (REQUIRE(o[1] == 1))
86 (REQUIRE(o[2] == 2));
87 return 0;
88 });
89 }
90 {
91 lyra::main()("-o", "vvv")(
92 args { "main", "-o", "thing" },
93 [&](lyra::main & m)
94 {
95 test(REQUIRE(std::string(m["-o"]) == "thing"));
96 return 0;
97 });
98 }
99
100 return test;
101 }
102