1 module ut.ctfe.types;
2 
3 
4 import ut.ctfe;
5 
6 
7 @("empty")
8 @safe pure unittest {
9     module_!"modules.empty".should == Module("modules.empty");
10 }
11 
12 
13 @("imports")
14 @safe pure unittest {
15     module_!"modules.imports".should == Module("modules.imports");
16 }
17 
18 
19 @("types")
20 @safe pure unittest {
21     enum mod = module_!"modules.types";
22 
23     mod.aggregates[].should == [
24         Aggregate("String", Aggregate.Kind.struct_),
25         Aggregate("Enum", Aggregate.Kind.enum_),
26         Aggregate("Class", Aggregate.Kind.class_),
27         Aggregate("Interface", Aggregate.Kind.interface_),
28         Aggregate("AbstractClass", Aggregate.Kind.class_),
29         Aggregate("MiddleClass", Aggregate.Kind.class_),
30         Aggregate("LeafClass", Aggregate.Kind.class_),
31         Aggregate("Point", Aggregate.Kind.struct_),
32         Aggregate("Inner1", Aggregate.Kind.struct_),
33         Aggregate("EvenInner", Aggregate.Kind.struct_),
34         Aggregate("Inner2", Aggregate.Kind.struct_),
35         Aggregate("Outer", Aggregate.Kind.struct_),
36         Aggregate("Char", Aggregate.Kind.enum_),
37     ];
38 
39     mod.allAggregates[].should == [
40         Aggregate("String", Aggregate.Kind.struct_),
41         Aggregate("Enum", Aggregate.Kind.enum_),
42         Aggregate("Class", Aggregate.Kind.class_),
43         Aggregate("Interface", Aggregate.Kind.interface_),
44         Aggregate("AbstractClass", Aggregate.Kind.class_),
45         Aggregate("MiddleClass", Aggregate.Kind.class_),
46         Aggregate("LeafClass", Aggregate.Kind.class_),
47         Aggregate("Point", Aggregate.Kind.struct_),
48         Aggregate("Inner1", Aggregate.Kind.struct_),
49         Aggregate("EvenInner", Aggregate.Kind.struct_),
50         Aggregate("Inner2", Aggregate.Kind.struct_),
51         Aggregate("Outer", Aggregate.Kind.struct_),
52         Aggregate("Char", Aggregate.Kind.enum_),
53     ];
54 }
55 
56 
57 @("problems")
58 @safe pure unittest {
59     module_!"modules.problems".should ==
60         Module(
61             "modules.problems",
62             [],
63             [],
64             [Variable("int[]", "gInts")],
65             []
66         );
67 }
68 
69 
70 @("variables")
71 @safe pure unittest {
72     enum mod = module_!"modules.variables";
73     mod.aggregates[].should == [
74         Aggregate("Struct", Aggregate.Kind.struct_),
75     ];
76 }