Internal Test: Verifies that the error state is correctly cleared after a subsequent successful operation.

ID: 324

				
					using uCalcSoftware;

var uc = new uCalc();
// Internal Test: Verify error state is cleared
Console.WriteLine("--- Testing Error State Lifecycle ---");

// 1. Trigger a division-by-zero error.
uc.Error.TrapOnDivideByZero = true;
uc.EvalStr("1 / 0");
Console.WriteLine($"Message after 1/0: '{uc.Error.Message}'");
Console.WriteLine($"Error number is not None: {uc.Error.Code != ErrorCode.None}");

// 2. Perform a successful operation, which should clear the previous error state.
uc.EvalStr("1 + 1");

// 3. Verify the error message and number have been reset.
Console.WriteLine($"Message after successful op: '{uc.Error.Message}'");
Console.WriteLine($"Error number is now None: {uc.Error.Code == ErrorCode.None}");
				
			
--- Testing Error State Lifecycle ---
Message after 1/0: 'Division by 0'
Error number is not None: True
Message after successful op: 'No error'
Error number is now None: True
				
					#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

#define tf(IsTrue) ((IsTrue) ? "True" : "False")

int main() {
   uCalc uc;
   // Internal Test: Verify error state is cleared
   cout << "--- Testing Error State Lifecycle ---" << endl;

   // 1. Trigger a division-by-zero error.
   uc.Error().TrapOnDivideByZero(true);
   uc.EvalStr("1 / 0");
   cout << "Message after 1/0: '" << uc.Error().Message() << "'" << endl;
   cout << "Error number is not None: " << tf(uc.Error().Code() != ErrorCode::None) << endl;

   // 2. Perform a successful operation, which should clear the previous error state.
   uc.EvalStr("1 + 1");

   // 3. Verify the error message and number have been reset.
   cout << "Message after successful op: '" << uc.Error().Message() << "'" << endl;
   cout << "Error number is now None: " << tf(uc.Error().Code() == ErrorCode::None) << endl;
}
				
			
--- Testing Error State Lifecycle ---
Message after 1/0: 'Division by 0'
Error number is not None: True
Message after successful op: 'No error'
Error number is now None: True
				
					Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      '// Internal Test: Verify error state is cleared
      Console.WriteLine("--- Testing Error State Lifecycle ---")
      
      '// 1. Trigger a division-by-zero error.
      uc.Error.TrapOnDivideByZero = true
      uc.EvalStr("1 / 0")
      Console.WriteLine($"Message after 1/0: '{uc.Error.Message}'")
      Console.WriteLine($"Error number is not None: {uc.Error.Code <> ErrorCode.None}")
      
      '// 2. Perform a successful operation, which should clear the previous error state.
      uc.EvalStr("1 + 1")
      
      '// 3. Verify the error message and number have been reset.
      Console.WriteLine($"Message after successful op: '{uc.Error.Message}'")
      Console.WriteLine($"Error number is now None: {uc.Error.Code = ErrorCode.None}")
   End Sub
End Module
				
			
--- Testing Error State Lifecycle ---
Message after 1/0: 'Division by 0'
Error number is not None: True
Message after successful op: 'No error'
Error number is now None: True