TEST(object, construct_primitive) { msgpack::object obj_nil; EXPECT_EQ(msgpack::type::NIL, obj_nil.type); msgpack::object obj_uint(1); EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj_uint.type); EXPECT_EQ(1u, obj_uint.via.u64); msgpack::object obj_int(-1); EXPECT_EQ(msgpack::type::NEGATIVE_INTEGER, obj_int.type); EXPECT_EQ(-1, obj_int.via.i64); msgpack::object obj_float(1.2); EXPECT_EQ(msgpack::type::FLOAT, obj_float.type); EXPECT_EQ(1.2, obj_float.via.f64); #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) EXPECT_EQ(msgpack::type::DOUBLE, obj_float.type); EXPECT_EQ(1.2, obj_float.via.dec); #endif // MSGPACK_USE_LEGACY_NAME_AS_FLOAT msgpack::object obj_bool(true); EXPECT_EQ(msgpack::type::BOOLEAN, obj_bool.type); EXPECT_EQ(true, obj_bool.via.boolean); }
static PyObj obj_richcompare(PyObj self, PyObj with, int comparison) { char *op = NULL; PyObj boolob, rob; if (with == Py_None) { Py_INCREF(Py_NotImplemented); return(Py_NotImplemented); } switch (comparison) { case Py_LT: op = "<"; break; case Py_LE: op = "<="; break; case Py_EQ: op = "="; break; case Py_NE: op = "<>"; break; case Py_GT: op = ">"; break; case Py_GE: op = ">="; break; default: Py_INCREF(Py_NotImplemented); return(Py_NotImplemented); break; } boolob = PyPgObject_Operate(op, self, with); if (boolob == NULL) return(NULL); if (obj_bool(boolob)) rob = Py_True; else rob = Py_False; Py_DECREF(boolob); Py_INCREF(rob); return(rob); }
TEST(object, equal_primitive) { msgpack::object obj_nil; EXPECT_EQ(obj_nil, msgpack::object()); msgpack::object obj_int(1); EXPECT_EQ(obj_int, msgpack::object(1)); EXPECT_EQ(obj_int, 1); msgpack::object obj_float(1.2); EXPECT_EQ(obj_float, msgpack::object(1.2)); EXPECT_EQ(obj_float, 1.2); msgpack::object obj_bool(true); EXPECT_EQ(obj_bool, msgpack::object(true)); EXPECT_EQ(obj_bool, true); }