///////////////////////////////////////////////////////////////////////////
| 34 | |
| 35 | //////////////////////////////////////////////////////////////////////////////// |
| 36 | int TEST_NAME(int, char**) { |
| 37 | UnitTest t(76); |
| 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 || vFalse, false, "false || false --> false"); |
| 50 | t.is(vFalse || vTrue, true, "false || true --> true"); |
| 51 | t.is(vTrue || vFalse, true, "true || false --> true"); |
| 52 | t.is(vTrue || vTrue, true, "true || true --> true"); |
| 53 | |
| 54 | Variant v00 = v0 || v0; |
| 55 | t.is(v00.type(), Variant::type_boolean, "true || true --> boolean"); |
| 56 | t.is(v00.get_bool(), true, "true || true --> true"); |
| 57 | |
| 58 | Variant v01 = v0 || v1; |
| 59 | t.is(v01.type(), Variant::type_boolean, "true || 42 --> boolean"); |
| 60 | t.is(v01.get_bool(), true, "true || 42 --> true"); |
| 61 | |
| 62 | Variant v02 = v0 || v2; |
| 63 | t.is(v02.type(), Variant::type_boolean, "true || 3.14 --> boolean"); |
| 64 | t.is(v02.get_bool(), true, "true || 3.14 --> true"); |
| 65 | |
| 66 | Variant v03 = v0 || v3; |
| 67 | t.is(v03.type(), Variant::type_boolean, "true || 'foo' --> boolean"); |
| 68 | t.is(v03.get_bool(), true, "true || 'foo' --> true"); |
| 69 | |
| 70 | Variant v04 = v0 || v4; |
| 71 | t.is(v04.type(), Variant::type_boolean, "true || 1234567890 --> boolean"); |
| 72 | t.is(v04.get_bool(), true, "true || 1234567890 --> true"); |
| 73 | |
| 74 | Variant v05 = v0 || v5; |
| 75 | t.is(v05.type(), Variant::type_boolean, "true || 1200 --> boolean"); |
| 76 | t.is(v05.get_bool(), true, "true || 1200 --> true"); |
| 77 | |
| 78 | Variant v10 = v1 || v0; |
| 79 | t.is(v10.type(), Variant::type_boolean, "42 || true --> boolean"); |
| 80 | t.is(v10.get_bool(), true, "42 || true --> true"); |
| 81 | |
| 82 | Variant v11 = v1 || v1; |
| 83 | t.is(v11.type(), Variant::type_boolean, "42 || 42 --> boolean"); |
| 84 | t.is(v11.get_bool(), true, "42 || 42 --> true"); |
| 85 | |
| 86 | Variant v12 = v1 || v2; |
| 87 | t.is(v12.type(), Variant::type_boolean, "42 || 3.14 --> boolean"); |
| 88 | t.is(v12.get_bool(), true, "42 || 3.14 --> true"); |
| 89 | |
| 90 | Variant v13 = v1 || v3; |
| 91 | t.is(v13.type(), Variant::type_boolean, "42 || 'foo' --> boolean"); |
| 92 | t.is(v13.get_bool(), true, "42 || 'foo' --> true"); |
| 93 |