1 module speedy.fakestdio_tests_nogc;
2 @safe @nogc:
3 import speedy.fakestdio;
4 
5 @nogc unittest
6 {
7     stdout.flush;
8     writeln(1);
9     write(2);
10     write("hello");
11     writeln(7, "xyz");
12     int[3] a = [1, -2, 3];
13     write(true);
14     write(a);
15     int[2][2] b = [[7, 8], [9, 10]];
16     write(b);
17     write(1 > 2);
18     auto expected_data = "1\n2hello7xyz\ntrue[1, -2, 3][[7, 8], [9, 10]]false";
19     assert(stdout.buffer_contains(expected_data));
20 }
21 
22 @nogc unittest
23 {
24     stdout.flush;
25     writeln(int.min);
26     writeln(int.max);
27     writeln(uint.min);
28     writeln(uint.max);
29     writeln(long.min);
30     writeln(long.max);
31     writeln(ulong.min);
32     writeln(ulong.max);
33     auto expected_data = "-2147483648\n2147483647\n0\n4294967295\n" ~
34         "-9223372036854775808\n9223372036854775807\n" ~
35         "0\n18446744073709551615\n";
36     assert(stdout.buffer_contains(expected_data));
37 }
38 
39 @nogc unittest
40 {
41     int[3] a = [1, 2, 3];
42     int[2][3] b = [[1, 0], [2, -3], [3, 8]];
43 
44     stdout.flush;
45     writef!"%d"(123);
46     assert(stdout.buffer_contains("123"));
47 
48     stdout.flush;
49     writefln!"%d"(123);
50     assert(stdout.buffer_contains("123\n"));
51 
52     stdout.flush;
53     writefln!"%s"(a);
54     assert(stdout.buffer_contains("[1, 2, 3]\n"));
55 
56     stdout.flush;
57     writefln!"%(%s %)"(b);
58     assert(stdout.buffer_contains("[1, 0] [2, -3] [3, 8]\n"));
59 
60     stdout.flush;
61     writef!"%s %(%s%)"(a, b);
62     assert(stdout.buffer_contains("[1, 2, 3] [1, 0][2, -3][3, 8]"));
63 
64     stdout.flush;
65     writef!"%s %-(%s%)"(a, b);
66     assert(stdout.buffer_contains("[1, 2, 3] [1, 0][2, -3][3, 8]"));
67 
68     stdout.flush;
69     string[3] s = ["abc", "x", "y"];
70     writefln!"%-(%s %)"(s);
71     assert(stdout.buffer_contains("abc x y\n"));
72 
73     stdout.flush;
74     writefln!"hello %d %(%d %% %)"(123, a);
75     writefln!"%(%s, %)"(a);
76     auto expected_data = "hello 123 1 % 2 % 3\n1, 2, 3\n";
77     assert(stdout.buffer_contains(expected_data), "writefln");
78 }