PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
test_support.h
Go to the documentation of this file.
1/**
2 * @file test_support.h
3 * @brief C test module for PICurv.
4 */
5
6#ifndef PICURV_TEST_SUPPORT_H
7#define PICURV_TEST_SUPPORT_H
8
9#include <stddef.h>
10
11#include "variables.h"
12
13/** @brief Signature for a single C unit-test entry point. */
14typedef PetscErrorCode (*PicurvTestFn)(void);
15
16/** @brief Named test case descriptor consumed by `PicurvRunTests`. */
21
22/** @brief Executes a table of unit tests and reports aggregated pass/fail status. */
23PetscErrorCode PicurvRunTests(const char *suite_name, const PicurvTestCase *cases, size_t case_count);
24
25/** @brief Creates minimal PETSc/solver contexts used by isolated kernel tests. */
26PetscErrorCode PicurvCreateMinimalContexts(SimCtx **simCtx_out, UserCtx **user_out, PetscInt mx, PetscInt my, PetscInt mz);
27
28/** @brief Destroys contexts previously created by `PicurvCreateMinimalContexts`. */
29PetscErrorCode PicurvDestroyMinimalContexts(SimCtx **simCtx, UserCtx **user);
30
31/** @brief Fills metric vectors with identity metrics for Cartesian-reference tests. */
32PetscErrorCode PicurvPopulateIdentityMetrics(UserCtx *user);
33
34/** @brief Creates paired runtime/post swarms with optional extra post-processing field registration. */
35PetscErrorCode PicurvCreateSwarmPair(UserCtx *user, PetscInt nlocal, const char *post_field_name);
36
37/** @brief Creates a unique temporary directory path and materializes the directory. */
38PetscErrorCode PicurvMakeTempDir(char *path, size_t path_len);
39
40/** @brief Ensures a directory exists, creating it if required. */
41PetscErrorCode PicurvEnsureDir(const char *path);
42
43/** @brief Asserts two real values are within tolerance for test validation. */
44PetscErrorCode PicurvAssertRealNear(PetscReal expected, PetscReal actual, PetscReal tol, const char *context);
45
46/** @brief Asserts two integer values are exactly equal for test validation. */
47PetscErrorCode PicurvAssertIntEqual(PetscInt expected, PetscInt actual, const char *context);
48
49/** @brief Asserts a boolean condition is true for test validation. */
50PetscErrorCode PicurvAssertBool(PetscBool value, const char *context);
51
52/** @brief Asserts a filesystem path exists. */
53PetscErrorCode PicurvAssertFileExists(const char *path, const char *context);
54
55/** @brief Asserts every entry of a vector equals a constant within tolerance. */
56PetscErrorCode PicurvAssertVecConstant(Vec vec, PetscScalar expected, PetscReal tol, const char *context);
57
58#endif
PetscErrorCode PicurvMakeTempDir(char *path, size_t path_len)
Creates a unique temporary directory path and materializes the directory.
PetscErrorCode PicurvCreateMinimalContexts(SimCtx **simCtx_out, UserCtx **user_out, PetscInt mx, PetscInt my, PetscInt mz)
Creates minimal PETSc/solver contexts used by isolated kernel tests.
PetscErrorCode PicurvEnsureDir(const char *path)
Ensures a directory exists, creating it if required.
PetscErrorCode PicurvAssertRealNear(PetscReal expected, PetscReal actual, PetscReal tol, const char *context)
Asserts two real values are within tolerance for test validation.
PetscErrorCode PicurvDestroyMinimalContexts(SimCtx **simCtx, UserCtx **user)
Destroys contexts previously created by PicurvCreateMinimalContexts.
PetscErrorCode(* PicurvTestFn)(void)
Signature for a single C unit-test entry point.
PetscErrorCode PicurvCreateSwarmPair(UserCtx *user, PetscInt nlocal, const char *post_field_name)
Creates paired runtime/post swarms with optional extra post-processing field registration.
PetscErrorCode PicurvRunTests(const char *suite_name, const PicurvTestCase *cases, size_t case_count)
Executes a table of unit tests and reports aggregated pass/fail status.
PetscErrorCode PicurvAssertFileExists(const char *path, const char *context)
Asserts a filesystem path exists.
PetscErrorCode PicurvAssertVecConstant(Vec vec, PetscScalar expected, PetscReal tol, const char *context)
Asserts every entry of a vector equals a constant within tolerance.
const char * name
PetscErrorCode PicurvAssertIntEqual(PetscInt expected, PetscInt actual, const char *context)
Asserts two integer values are exactly equal for test validation.
PetscErrorCode PicurvPopulateIdentityMetrics(UserCtx *user)
Fills metric vectors with identity metrics for Cartesian-reference tests.
PicurvTestFn fn
PetscErrorCode PicurvAssertBool(PetscBool value, const char *context)
Asserts a boolean condition is true for test validation.
Named test case descriptor consumed by PicurvRunTests.
Main header file for a complex fluid dynamics solver.
The master context for the entire simulation.
Definition variables.h:591
User-defined context containing data specific to a single computational grid level.
Definition variables.h:738