Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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);
}