///////////////////////////////////////////////////////////////////////////
| 34 | |
| 35 | //////////////////////////////////////////////////////////////////////////////// |
| 36 | int TEST_NAME(int, char**) { |
| 37 | UnitTest t(14); |
| 38 | |
| 39 | Variant v0(true); |
| 40 | Variant v1(42); |
| 41 | Variant v2(3.14); |
| 42 | Variant v3("foo"); |
| 43 | Variant v4(1234567890, Variant::type_date); |
| 44 | Variant v5(1200, Variant::type_duration); |
| 45 | |
| 46 | // Truth table. |
| 47 | Variant vFalse(false); |
| 48 | Variant vTrue(true); |
| 49 | t.is(!vFalse, true, "!false --> true"); |
| 50 | t.is(!vTrue, false, "!true --> false"); |
| 51 | |
| 52 | Variant v00 = !v0; |
| 53 | t.is(v00.type(), Variant::type_boolean, "! true --> boolean"); |
| 54 | t.is(v00.get_bool(), false, "! true --> false"); |
| 55 | |
| 56 | Variant v01 = !v1; |
| 57 | t.is(v01.type(), Variant::type_boolean, "! 42 --> boolean"); |
| 58 | t.is(v01.get_bool(), false, "! 42 --> false"); |
| 59 | |
| 60 | Variant v02 = !v2; |
| 61 | t.is(v02.type(), Variant::type_boolean, "! 3.14 --> boolean"); |
| 62 | t.is(v02.get_bool(), false, "! 3.14 --> false"); |
| 63 | |
| 64 | Variant v03 = !v3; |
| 65 | t.is(v03.type(), Variant::type_boolean, "! foo --> boolean"); |
| 66 | t.is(v03.get_bool(), false, "! foo --> false"); |
| 67 | |
| 68 | Variant v04 = !v4; |
| 69 | t.is(v04.type(), Variant::type_boolean, "! 1234567890 --> boolean"); |
| 70 | t.is(v04.get_bool(), false, "! 1234567890 --> false"); |
| 71 | |
| 72 | Variant v05 = !v5; |
| 73 | t.is(v05.type(), Variant::type_boolean, "! 1200 --> boolean"); |
| 74 | t.is(v05.get_bool(), false, "! 1200 --> false"); |
| 75 | |
| 76 | return 0; |
| 77 | } |
| 78 | |
| 79 | //////////////////////////////////////////////////////////////////////////////// |