From e84cce9fef99cca85f1af8d4493293b734672cc9 Mon Sep 17 00:00:00 2001 From: wagesj45 Date: Wed, 20 Aug 2025 06:06:42 -0500 Subject: [PATCH] tests(stdlib): avoid decimal attribute arguments; use string TestCase values and parse to decimal for high-precision cases --- src/tests/StdlibFunctionsTests.cs | 44 +++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/tests/StdlibFunctionsTests.cs b/src/tests/StdlibFunctionsTests.cs index 9f806ec..b006d70 100644 --- a/src/tests/StdlibFunctionsTests.cs +++ b/src/tests/StdlibFunctionsTests.cs @@ -31,7 +31,6 @@ public class StdlibFunctionsTests [TestCase("abs(-1)", 1)] [TestCase("abs(0)", 0)] [TestCase("abs(2)", 2)] - [TestCase("abs(-3.5)", 3.5)] [TestCase("2 + abs(-1)", 3)] public void AbsoluteValue_Works(string expr, decimal expected) { @@ -39,6 +38,14 @@ public class StdlibFunctionsTests AssertSuccess(result, expected, _interp); } + [TestCase("abs(-3.5)", "3.5")] + public void AbsoluteValue_Works_Decimal(string expr, string expectedStr) + { + var result = _interp.Interpret(expr); + var expected = decimal.Parse(expectedStr, CultureInfo.InvariantCulture); + AssertSuccess(result, expected, _interp); + } + [TestCase("sign(5)", 1)] [TestCase("sign(0)", 1)] [TestCase("sign(-2)", -1)] @@ -53,34 +60,49 @@ public class StdlibFunctionsTests [TestCase("min(2,1)", 1)] [TestCase("min(-3,4)", -3)] [TestCase("1 + min(3,4)", 4)] - [TestCase("min(2.5, 2.6)", 2.5)] public void Min_Works(string expr, decimal expected) { var result = _interp.Interpret(expr); AssertSuccess(result, expected, _interp); } + [TestCase("min(2.5, 2.6)", "2.5")] + public void Min_Works_Decimals(string expr, string expectedStr) + { + var result = _interp.Interpret(expr); + var expected = decimal.Parse(expectedStr, CultureInfo.InvariantCulture); + AssertSuccess(result, expected, _interp); + } + [TestCase("max(1,2)", 2)] [TestCase("max(2,1)", 2)] [TestCase("max(-3,4)", 4)] [TestCase("1 + max(3,4)", 5)] - [TestCase("max(2.5, 2.6)", 2.6)] public void Max_Works(string expr, decimal expected) { var result = _interp.Interpret(expr); AssertSuccess(result, expected, _interp); } - [TestCase("pi", 3.1415926535897931)] - [TestCase("e", 2.7182818284590451)] - [TestCase("tau", 6.2831853071795862)] - [TestCase("phi", 1.6180339887498948)] - [TestCase("goldenratio", 1.6180339887498948)] - [TestCase("eurler", 0.5772156649015329)] - [TestCase("omega", 0.5671432904097839)] - public void Constants_AreAvailable(string expr, decimal expected) + [TestCase("max(2.5, 2.6)", "2.6")] + public void Max_Works_Decimals(string expr, string expectedStr) { var result = _interp.Interpret(expr); + var expected = decimal.Parse(expectedStr, CultureInfo.InvariantCulture); + AssertSuccess(result, expected, _interp); + } + + [TestCase("pi", "3.1415926535897931")] + [TestCase("e", "2.7182818284590451")] + [TestCase("tau", "6.2831853071795862")] + [TestCase("phi", "1.6180339887498948")] + [TestCase("goldenratio", "1.6180339887498948")] + [TestCase("eurler", "0.5772156649015329")] + [TestCase("omega", "0.5671432904097839")] + public void Constants_AreAvailable(string expr, string expectedStr) + { + var result = _interp.Interpret(expr); + var expected = decimal.Parse(expectedStr, CultureInfo.InvariantCulture); AssertSuccess(result, expected, _interp); }