@@ -16,14 +16,15 @@ public class CalculatorPluginTest
1616 {
1717 DecimalSeparator = DecimalSeparator . UseSystemLocale ,
1818 MaxDecimalPlaces = 10 ,
19- ShowErrorMessage = false // Make sure we return the empty results when error occurs
19+ ShowErrorMessage = false , // Make sure we return the empty results when error occurs
20+ UseThousandsSeparator = true // Default value
2021 } ;
2122 private readonly Engine _engine = new ( new Configuration
2223 {
2324 Scope = new Dictionary < string , object >
24- {
25- { "e" , Math . E } , // e is not contained in the default mages engine
26- }
25+ {
26+ { "e" , Math . E } , // e is not contained in the default mages engine
27+ }
2728 } ) ;
2829
2930 public CalculatorPluginTest ( )
@@ -41,6 +42,44 @@ public CalculatorPluginTest()
4142 engineField . SetValue ( null , _engine ) ;
4243 }
4344
45+ [ Test ]
46+ public void ThousandsSeparatorTest_Enabled ( )
47+ {
48+ _settings . UseThousandsSeparator = true ;
49+
50+ _settings . DecimalSeparator = DecimalSeparator . Dot ;
51+ var result = GetCalculationResult ( "1000+234" ) ;
52+ // When thousands separator is enabled, the result should contain a separator
53+ // Since decimal separator is dot, thousands separator should be comma
54+ ClassicAssert . AreEqual ( "1,234" , result ) ;
55+
56+ _settings . DecimalSeparator = DecimalSeparator . Comma ;
57+ var result2 = GetCalculationResult ( "1000+234" ) ;
58+ // When thousands separator is enabled, the result should contain a separator
59+ // Since decimal separator is comma, thousands separator should be dot
60+ ClassicAssert . AreEqual ( "1.234" , result2 ) ;
61+ }
62+
63+ [ Test ]
64+ public void ThousandsSeparatorTest_Disabled ( )
65+ {
66+ _settings . UseThousandsSeparator = false ;
67+ _settings . DecimalSeparator = DecimalSeparator . UseSystemLocale ;
68+
69+ var result = GetCalculationResult ( "1000+234" ) ;
70+ ClassicAssert . AreEqual ( "1234" , result ) ;
71+ }
72+
73+ [ Test ]
74+ public void ThousandsSeparatorTest_LargeNumber ( )
75+ {
76+ _settings . UseThousandsSeparator = false ;
77+ _settings . DecimalSeparator = DecimalSeparator . UseSystemLocale ;
78+
79+ var result = GetCalculationResult ( "1000000+234567" ) ;
80+ ClassicAssert . AreEqual ( "1234567" , result ) ;
81+ }
82+
4483 // Basic operations
4584 [ TestCase ( @"1+1" , "2" ) ]
4685 [ TestCase ( @"2-1" , "1" ) ]
@@ -77,6 +116,9 @@ public CalculatorPluginTest()
77116 [ TestCase ( @"invalid_expression" , "" ) ]
78117 public void CalculatorTest ( string expression , string result )
79118 {
119+ _settings . UseThousandsSeparator = false ;
120+ _settings . DecimalSeparator = DecimalSeparator . Dot ;
121+
80122 ClassicAssert . AreEqual ( GetCalculationResult ( expression ) , result ) ;
81123 }
82124
0 commit comments