From e1909e734a7971e4e6275e1a6f75936bfc948e58 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Wed, 12 Jan 2011 18:10:33 +0000 Subject: [PATCH] Add bignum test based on user comment. --- .../luaj/vm2/lib/jse/LuaJavaCoercionTest.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/junit/org/luaj/vm2/lib/jse/LuaJavaCoercionTest.java b/test/junit/org/luaj/vm2/lib/jse/LuaJavaCoercionTest.java index 5b795894..13e804f6 100644 --- a/test/junit/org/luaj/vm2/lib/jse/LuaJavaCoercionTest.java +++ b/test/junit/org/luaj/vm2/lib/jse/LuaJavaCoercionTest.java @@ -244,4 +244,27 @@ public class LuaJavaCoercionTest extends TestCase { assertEquals( "foo-nil", v.arrayargsMethod("foo", null) ); } + public void testBigNum() { + String script = + "bigNumA = luajava.newInstance('java.math.BigDecimal','12345678901234567890');\n" + + "bigNumB = luajava.newInstance('java.math.BigDecimal','12345678901234567890');\n" + + "bigNumC = bigNumA:multiply(bigNumB);\n" + + //"print(bigNumA:toString())\n" + + //"print(bigNumB:toString())\n" + + //"print(bigNumC:toString())\n" + + "return bigNumA:toString(), bigNumB:toString(), bigNumC:toString()"; + Varargs chunk = _G.get("loadstring").call(LuaValue.valueOf(script)); + if ( ! chunk.arg1().toboolean() ) + fail( chunk.arg(2).toString() ); + Varargs results = chunk.arg1().invoke(); + int nresults = results.narg(); + String sa = results.tojstring(1); + String sb = results.tojstring(2); + String sc = results.tojstring(3); + assertEquals( 3, nresults ); + assertEquals( "12345678901234567890", sa ); + assertEquals( "12345678901234567890", sb ); + assertEquals( "152415787532388367501905199875019052100", sc ); + } + }