1 module tests.pass.normal; 2 3 import unit_threaded; 4 5 6 class IntEqualTest: TestCase { 7 override void test() { 8 1.shouldNotEqual(5); 9 5.shouldNotEqual(1); 10 3.shouldEqual(3); 11 2.shouldEqual(2); 12 } 13 } 14 15 class DoubleEqualTest: TestCase { 16 override void test() { 17 shouldNotEqual(1.0, 2.0); 18 (2.0).shouldEqual(2.0); 19 (2.0).shouldEqual(2.0); 20 } 21 } 22 23 void testEqual() { 24 1.shouldEqual(1); 25 checkEqual(1.0, 1.0); 26 "foo".shouldEqual("foo"); 27 } 28 29 void testNotEqual() { 30 3.shouldNotEqual(4); 31 checkNotEqual(5.0, 6.0); 32 "foo".shouldNotEqual("bar"); 33 } 34 35 36 private class MyException: Exception { 37 this() { 38 super("MyException"); 39 } 40 } 41 42 void testThrown() { 43 throwFunc.shouldThrow!MyException; 44 } 45 46 void testNotThrown() { 47 nothrowFunc.shouldNotThrow; 48 } 49 50 private void throwFunc() { 51 throw new MyException; 52 } 53 54 private void nothrowFunc() nothrow { 55 {} 56 } 57 58 @Name("first_unit_test") 59 unittest { 60 writelnUt("First unit test block\n"); 61 assert(true); //unit test block that always passes 62 } 63 64 @Name("second_unit_test") 65 unittest { 66 writelnUt("Second unit test block\n"); 67 assert(true); //unit test block that always passes 68 } 69 70 71 private class MyClass { 72 int i; 73 double d; 74 this(int i, double d) { 75 this.i = i; 76 this.d = d; 77 } 78 override string toString() const { 79 import std.conv; 80 return text("MyClass(", i, ", ", d, ")"); 81 } 82 } 83 84 void testEqualClass() { 85 const foo = new MyClass(2, 3.0); 86 const bar = new MyClass(2, 3.0); 87 const baz = new MyClass(3, 3.0); 88 89 foo.shouldEqual(bar); 90 bar.shouldEqual(foo); 91 foo.shouldNotEqual(baz); 92 bar.shouldNotEqual(baz); 93 baz.shouldNotEqual(foo); 94 baz.shouldNotEqual(bar); 95 } 96 97 98 private struct Pair { 99 string s; 100 int i; 101 } 102 103 void testPairAA() { 104 auto map = [Pair("foo", 5): 105]; 105 [Pair("foo", 5): 105].shouldEqual(map); 106 map.dup.shouldEqual(map); 107 auto pair = Pair("foo", 5); 108 auto othermap = [pair: 105]; 109 map.shouldEqual(othermap); 110 }