/** * Test: Error code verification * * Verifies that error codes are correctly returned and mapped. */ #include #include #include #include #include "entropyk.h" int main() { printf("Test: Error codes\n"); /* Test 1: Error strings */ printf(" Test 1: Error strings are non-null... "); assert(entropyk_error_string(ENTROPYK_OK) != NULL); assert(entropyk_error_string(ENTROPYK_NON_CONVERGENCE) != NULL); assert(entropyk_error_string(ENTROPYK_TIMEOUT) != NULL); assert(entropyk_error_string(ENTROPYK_CONTROL_SATURATION) != NULL); assert(entropyk_error_string(ENTROPYK_FLUID_ERROR) != NULL); assert(entropyk_error_string(ENTROPYK_INVALID_STATE) != NULL); assert(entropyk_error_string(ENTROPYK_VALIDATION_ERROR) != NULL); assert(entropyk_error_string(ENTROPYK_NULL_POINTER) != NULL); assert(entropyk_error_string(ENTROPYK_INVALID_ARGUMENT) != NULL); assert(entropyk_error_string(ENTROPYK_NOT_FINALIZED) != NULL); assert(entropyk_error_string(ENTROPYK_TOPOLOGY_ERROR) != NULL); assert(entropyk_error_string(ENTROPYK_COMPONENT_ERROR) != NULL); assert(entropyk_error_string(ENTROPYK_UNKNOWN) != NULL); printf("PASS\n"); /* Test 2: OK message */ printf(" Test 2: OK message contains 'Success'... "); const char* ok_msg = entropyk_error_string(ENTROPYK_OK); assert(strstr(ok_msg, "Success") != NULL); printf("PASS\n"); /* Test 3: Null pointer error */ printf(" Test 3: Null pointer returns ENTROPYK_NULL_POINTER... "); EntropykErrorCode err = entropyk_system_add_edge(NULL, 0, 1); assert(err == ENTROPYK_NULL_POINTER); printf("PASS\n"); /* Test 4: Component with invalid parameters */ printf(" Test 4: Invalid parameters return null... "); EntropykComponent* comp = entropyk_condenser_create(-1.0); /* Invalid UA */ assert(comp == NULL); comp = entropyk_evaporator_create(0.0); /* Invalid UA */ assert(comp == NULL); comp = entropyk_compressor_create(NULL, 10); /* Null coefficients */ assert(comp == NULL); double coeffs[5] = {1, 2, 3, 4, 5}; comp = entropyk_compressor_create(coeffs, 5); /* Wrong count */ assert(comp == NULL); printf("PASS\n"); /* Test 5: Not finalized error */ printf(" Test 5: Finalize returns NOT_FINALIZED for empty system... "); EntropykSystem* sys = entropyk_system_create(); /* Empty system may not finalize properly - this tests error handling */ entropyk_system_finalize(sys); /* May return error for empty system */ entropyk_system_free(sys); printf("PASS\n"); printf("All error code tests PASSED\n"); return 0; }