Internal Test: Default Type Scope and Isolation
ID: 276
using uCalcSoftware;
var uc = new uCalc();
// Create a separate instance to verify isolation
var uc2 = new uCalc();
// Set main instance to String
uc.SetDefaultDataType("String");
// Set second instance to Int32
uc2.SetDefaultDataType("Int32");
Console.WriteLine($"uc1 Default: {uc.DefaultDataType.Name}");
Console.WriteLine($"uc2 Default: {uc2.DefaultDataType.Name}");
uc2.DefineFunction("Add(a, b) = a + b");
Console.WriteLine($"Numeric Add: {uc2.EvalStr("Add(5, 5)")}");
// Check Eval behavior with String default
// "5" + "5" should be string concatenation "55"
uc.DefineFunction("Add(a, b) = a + b");
Console.WriteLine($"String Add: {uc.EvalStr("Add(5, 5)")}");
uc1 Default: string
uc2 Default: int
Numeric Add: 10
String Add: 55 using uCalcSoftware; var uc = new uCalc(); // Create a separate instance to verify isolation var uc2 = new uCalc(); // Set main instance to String uc.SetDefaultDataType("String"); // Set second instance to Int32 uc2.SetDefaultDataType("Int32"); Console.WriteLine($"uc1 Default: {uc.DefaultDataType.Name}"); Console.WriteLine($"uc2 Default: {uc2.DefaultDataType.Name}"); uc2.DefineFunction("Add(a, b) = a + b"); Console.WriteLine($"Numeric Add: {uc2.EvalStr("Add(5, 5)")}"); // Check Eval behavior with String default // "5" + "5" should be string concatenation "55" uc.DefineFunction("Add(a, b) = a + b"); Console.WriteLine($"String Add: {uc.EvalStr("Add(5, 5)")}");
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
int main() {
uCalc uc;
// Create a separate instance to verify isolation
uCalc uc2;
// Set main instance to String
uc.SetDefaultDataType("String");
// Set second instance to Int32
uc2.SetDefaultDataType("Int32");
cout << "uc1 Default: " << uc.DefaultDataType().Name() << endl;
cout << "uc2 Default: " << uc2.DefaultDataType().Name() << endl;
uc2.DefineFunction("Add(a, b) = a + b");
cout << "Numeric Add: " << uc2.EvalStr("Add(5, 5)") << endl;
// Check Eval behavior with String default
// "5" + "5" should be string concatenation "55"
uc.DefineFunction("Add(a, b) = a + b");
cout << "String Add: " << uc.EvalStr("Add(5, 5)") << endl;
}
uc1 Default: string
uc2 Default: int
Numeric Add: 10
String Add: 55 #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; // Create a separate instance to verify isolation uCalc uc2; // Set main instance to String uc.SetDefaultDataType("String"); // Set second instance to Int32 uc2.SetDefaultDataType("Int32"); cout << "uc1 Default: " << uc.DefaultDataType().Name() << endl; cout << "uc2 Default: " << uc2.DefaultDataType().Name() << endl; uc2.DefineFunction("Add(a, b) = a + b"); cout << "Numeric Add: " << uc2.EvalStr("Add(5, 5)") << endl; // Check Eval behavior with String default // "5" + "5" should be string concatenation "55" uc.DefineFunction("Add(a, b) = a + b"); cout << "String Add: " << uc.EvalStr("Add(5, 5)") << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub Main()
Dim uc As New uCalc()
'// Create a separate instance to verify isolation
Dim uc2 As New uCalc()
'// Set main instance to String
uc.SetDefaultDataType("String")
'// Set second instance to Int32
uc2.SetDefaultDataType("Int32")
Console.WriteLine($"uc1 Default: {uc.DefaultDataType.Name}")
Console.WriteLine($"uc2 Default: {uc2.DefaultDataType.Name}")
uc2.DefineFunction("Add(a, b) = a + b")
Console.WriteLine($"Numeric Add: {uc2.EvalStr("Add(5, 5)")}")
'// Check Eval behavior with String default
'// "5" + "5" should be string concatenation "55"
uc.DefineFunction("Add(a, b) = a + b")
Console.WriteLine($"String Add: {uc.EvalStr("Add(5, 5)")}")
End Sub
End Module
uc1 Default: string
uc2 Default: int
Numeric Add: 10
String Add: 55 Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() '// Create a separate instance to verify isolation Dim uc2 As New uCalc() '// Set main instance to String uc.SetDefaultDataType("String") '// Set second instance to Int32 uc2.SetDefaultDataType("Int32") Console.WriteLine($"uc1 Default: {uc.DefaultDataType.Name}") Console.WriteLine($"uc2 Default: {uc2.DefaultDataType.Name}") uc2.DefineFunction("Add(a, b) = a + b") Console.WriteLine($"Numeric Add: {uc2.EvalStr("Add(5, 5)")}") '// Check Eval behavior with String default '// "5" + "5" should be string concatenation "55" uc.DefineFunction("Add(a, b) = a + b") Console.WriteLine($"String Add: {uc.EvalStr("Add(5, 5)")}") End Sub End Module