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 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}");
#include
#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 #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; }
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 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