Support (small, size = 1) negative integers

This commit is contained in:
John J. Camilleri
2021-09-08 17:25:10 +02:00
parent 3b1907cd8c
commit 9739344ca6
2 changed files with 11 additions and 1 deletions

View File

@@ -79,11 +79,12 @@ PgfExpr eimplarg(PgfUnmarshaller *this, PgfExpr expr)
PgfLiteral lint(PgfUnmarshaller *this, size_t size, uintmax_t *v)
{
intmax_t *v0 = (intmax_t *)v;
if (size > 1) {
PyErr_SetString(PyExc_NotImplementedError, "multi-part integers not implemented"); // TODO
Py_RETURN_NOTIMPLEMENTED;
}
PyObject *i = PyLong_FromUnsignedLong(*v);
PyObject *i = PyLong_FromLong(*v0);
return (PgfLiteral) i;
}

View File

@@ -136,6 +136,15 @@ def test_readExpr_invalid():
def test_readExpr_equality_int():
assert pgf.readExpr("123") == pgf.readExpr("123")
def test_readExpr_equality_int_neg():
assert pgf.readExpr("-123") == pgf.readExpr("-123")
# def test_readExpr_equality_int_big():
# assert pgf.readExpr("774763251095801167872") == pgf.readExpr("774763251095801167872")
# def test_readExpr_equality_int_big_neg():
# assert pgf.readExpr("-774763251095801167872") == pgf.readExpr("-774763251095801167872")
def test_readExpr_inequality_int():
assert pgf.readExpr("123") != pgf.readExpr("456")