1 module speedy.fakestdio_tests;
2 @safe:
3 import speedy.fakestdio;
4 
5 unittest
6 {
7     stdout.flush;
8     string[2] a = ["abc", "xyz"];
9     writeln(a);
10     auto expected_data = "[\"abc\", \"xyz\"]\n";
11     assert(stdout.buffer_contains(expected_data));
12 }
13 
14 unittest
15 {
16     stdout.flush;
17     wchar c = 'ß';
18     dstring s = "ÄÖÜ";
19     writeln(c, s);
20     auto expected_data = "ßÄÖÜ\n";
21     assert(stdout.buffer_contains(expected_data));
22 }
23 
24 unittest
25 {
26     stdout.flush;
27     wchar[2] a;
28     a[0] = 'ß';
29     a[1] = 'Ä';
30     auto b = new dchar[3];
31     b[0] = 'Ä';
32     b[1] = 'Ö';
33     b[2] = 'Ü';
34     writeln(a, b);
35     auto expected_data = "ßÄÄÖÜ\n";
36     assert(stdout.buffer_contains(expected_data));
37 }
38 
39 unittest
40 {
41     import std.typecons : tuple;
42 
43     stdout.flush;
44     writeln(tuple(int.min, int.max), ' ', int.min, ' ', int.max);
45     auto expected_data = "Tuple!(int, int)(-2147483648, 2147483647) -2147483648 2147483647\n";
46     assert(stdout.buffer_contains(expected_data));
47 }
48 
49 unittest
50 {
51     stdout.flush;
52     writef!"%d %d"(12, 34);
53     writef(" %d %d", 56, 78);
54     auto expected_data = "12 34 56 78";
55     assert(stdout.buffer_contains(expected_data), "writef failed");
56 }
57 
58 unittest
59 {
60     stdout.flush;
61     string[3] s = ["abc", "x", "y"];
62     writefln!"%(%s %)"(s);
63     assert(stdout.buffer_contains("\"abc\" \"x\" \"y\"\n"));
64 }