Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      '// Setup a "Scientific" configuration
      Dim scientificCalc As New uCalc()
      scientificCalc.DefineFunction("sqrt(x) = x^0.5")
      scientificCalc.DefineVariable("pi = 3.14159")
      
      '// Setup a "Financial" configuration
      Dim financialCalc As New uCalc()
      financialCalc.DefineFunction("tax(amount, rate) = amount * (rate/100)")
      
      '// Set the scientific calculator as the default
      scientificCalc.IsDefault = true
      Console.WriteLine($"Current default is scientific? {scientificCalc.IsDefault}")
      
      '// Components that rely on the default instance now use the scientific setup.
      Dim expr1 As uCalc.Expression = "2 * pi"
      Console.WriteLine($"2 * pi = {expr1.Evaluate()}")
      
      '// Now, switch the default to the financial calculator
      financialCalc.IsDefault = true
      Console.WriteLine($"Current default is scientific? {scientificCalc.IsDefault}") '// Should be false now
      Console.WriteLine($"Current default is financial? {financialCalc.IsDefault}")
      
      '// New components will use the financial setup.
      Dim expr2 As uCalc.Expression = "tax(50000, 20)"
      Console.WriteLine($"Tax on 50000 at 20% = {expr2.Evaluate()}")
   End Sub
End Module