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
				
					#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;
}
				
			
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
				
			
uc1 Default: string
uc2 Default: int
Numeric Add: 10
String Add: 55