From 9739344ca6ef2868cc9624d27e2713145766e979 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Wed, 8 Sep 2021 17:25:10 +0200 Subject: [PATCH] Support (small, size = 1) negative integers --- src/runtime/python/marshaller.c | 3 ++- src/runtime/python/test_suite.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/runtime/python/marshaller.c b/src/runtime/python/marshaller.c index 2d9f6b382..8c364f5e4 100644 --- a/src/runtime/python/marshaller.c +++ b/src/runtime/python/marshaller.c @@ -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; } diff --git a/src/runtime/python/test_suite.py b/src/runtime/python/test_suite.py index c3007fedb..b3c0070f7 100644 --- a/src/runtime/python/test_suite.py +++ b/src/runtime/python/test_suite.py @@ -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")