test::eq/ne/gt syntax (#1928)

* test::eq/ne/gt syntax

* renamed @almost to test::eq_approx
This commit is contained in:
Aleksandr Vedeneev
2025-02-06 01:50:25 +04:00
committed by GitHub
parent ef72e19bf0
commit 3a502feb1d
3 changed files with 92 additions and 92 deletions

View File

@@ -71,73 +71,73 @@ TestState state =
fn void test_eq()
{
test::is_equal(1, 1);
test::is_equal(true, true);
test::is_equal(1.31, 1.31);
test::is_equal("foo", "foo");
test::eq(1, 1);
test::eq(true, true);
test::eq(1.31, 1.31);
test::eq("foo", "foo");
}
fn void test_almost_equal()
{
test::is_almost_equal(1, 1);
test::is_almost_equal(1.31, 1.31);
test::is_almost_equal(1.31f, 1.31f);
test::is_almost_equal(double.nan, double.nan);
test::is_almost_equal(float.nan, float.nan);
test::is_almost_equal(1.31, 1.31, delta: 0.01);
test::is_almost_equal(1.311, 1.312, delta: 0.01);
test::is_almost_equal(1.311, 1.312, places: 2);
test::eq_approx(1, 1);
test::eq_approx(1.31, 1.31);
test::eq_approx(1.31f, 1.31f);
test::eq_approx(double.nan, double.nan);
test::eq_approx(float.nan, float.nan);
test::eq_approx(1.31, 1.31, delta: 0.01);
test::eq_approx(1.311, 1.312, delta: 0.01);
test::eq_approx(1.311, 1.312, places: 2);
// 7 decimal places are default
test::is_almost_equal(1.00000001, 1.00000000);
test::eq_approx(1.00000001, 1.00000000);
}
fn void test_almost_equal_fails()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
// 7 decimal places are default
test::is_almost_equal(1.0000001, 1.00000000);
test::eq_approx(1.0000001, 1.00000000);
}
fn void test_almost_equal_fails_nan()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_almost_equal(1.0000001, double.nan);
test::eq_approx(1.0000001, double.nan);
}
fn void test_almost_equal_fails_nan2()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_almost_equal(double.nan, 1);
test::eq_approx(double.nan, 1);
}
fn void test_almost_equal_fails_equal_nan_false()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_almost_equal(double.nan, double.nan, equal_nan: false);
test::eq_approx(double.nan, double.nan, equal_nan: false);
}
fn void setup_teardown()
{
state.n_runs = 0; // just in case of previous test failed
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
test::is_equal(state.n_runs, 1);
test::is_equal(state.n_fails, 0);
test::is_equal(state.expected_fail, false);
test::eq(state.n_runs, 1);
test::eq(state.n_fails, 0);
test::eq(state.expected_fail, false);
}
fn void setup_no_teardown()
{
test::setup(state.setup_fn);
test::@setup(state.setup_fn);
test::is_equal(state.n_runs, 1);
test::is_equal(state.n_fails, 0);
test::is_equal(state.expected_fail, false);
test::eq(state.n_runs, 1);
test::eq(state.n_fails, 0);
test::eq(state.expected_fail, false);
// WARNING: reverting back original panic func
builtin::panic = state.old_panic;
@@ -145,103 +145,103 @@ fn void setup_no_teardown()
fn void expected_fail()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_equal(state.n_fails, 0);
test::is_equal(2, 1); // this fails, and we test it
test::is_equal(state.n_fails, 1);
test::eq(state.n_fails, 0);
test::eq(2, 1); // this fails, and we test it
test::eq(state.n_fails, 1);
}
fn void test_neq()
{
test::is_not_equal(2, 1);
test::is_not_equal(false, true);
test::is_not_equal(1.32, 1.31);
test::is_not_equal("foo", "bar");
test::ne(2, 1);
test::ne(false, true);
test::ne(1.32, 1.31);
test::ne("foo", "bar");
}
fn void test_neq_fails()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_not_equal(1, 1);
test::ne(1, 1);
}
fn void test_gt()
{
test::is_greater(2, 1);
test::is_greater(true, false);
test::is_greater(1.32, 1.31);
test::gt(2, 1);
test::gt(true, false);
test::gt(1.32, 1.31);
}
fn void test_gt_fails_when_equal()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_greater(2, 2);
test::gt(2, 2);
}
fn void test_gt_fails_when_less()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_greater(1, 2);
test::gt(1, 2);
}
fn void test_gte()
{
test::is_greater_equal(2, 1);
test::is_greater_equal(true, false);
test::is_greater_equal(1.32, 1.31);
test::is_greater_equal(2, 2);
test::is_greater_equal(true, true);
test::is_greater_equal(1.32, 1.32);
test::ge(2, 1);
test::ge(true, false);
test::ge(1.32, 1.31);
test::ge(2, 2);
test::ge(true, true);
test::ge(1.32, 1.32);
}
fn void test_gte_fails_when_less()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_greater_equal(1, 2);
test::ge(1, 2);
}
fn void test_lt()
{
test::is_less(1, 2);
test::is_less(false, true);
test::is_less(1.31, 1.32);
test::lt(1, 2);
test::lt(false, true);
test::lt(1.31, 1.32);
}
fn void test_lt_fails_when_equal()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_less(2, 2);
test::lt(2, 2);
}
fn void test_lt_fails_when_greater()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_less(2, 1);
test::lt(2, 1);
}
fn void test_lte()
{
test::is_less_equal(1, 2);
test::is_less_equal(false, true);
test::is_less_equal(1.31, 1.32);
test::is_less_equal(2, 2);
test::is_less_equal(true, true);
test::is_less_equal(1.32, 1.32);
test::le(1, 2);
test::le(false, true);
test::le(1.31, 1.32);
test::le(2, 2);
test::le(true, true);
test::le(1.32, 1.32);
}
fn void test_lte_fails_when_greater()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::is_less_equal(2, 1);
test::le(2, 1);
}
fn void test_check(){
@@ -253,14 +253,14 @@ fn void test_check(){
fn void test_check_fails()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::@check(2 == 1, "2 == %d", 1 );
}
fn void test_check_fails_no_info()
{
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::@check(2 == 1);
}
@@ -284,7 +284,7 @@ fn void test_error()
if (b == 0) return IoError.FILE_NOT_FOUND?;
return a / b;
};
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
test::@error(ffail_void(true), IoError.FILE_NOT_FOUND);
test::@error(ffail_int(1, 0), IoError.FILE_NOT_FOUND);
@@ -296,7 +296,7 @@ fn void test_error_not_raised()
if (b == 0) return IoError.FILE_NOT_FOUND?;
return a / b;
};
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::@error(ffail_int(1, 1), IoError.FILE_NOT_FOUND);
}
@@ -307,7 +307,7 @@ fn void test_error_wrong_error_expected()
if (b == 0) return IoError.BUSY?;
return a / b;
};
test::setup(state.setup_fn, state.teardown_fn);
test::@setup(state.setup_fn, state.teardown_fn);
state.expected_fail = true;
test::@error(ffail_int(1, 0), IoError.FILE_NOT_FOUND);
@@ -323,5 +323,5 @@ fn void test_std_out_hijack()
io::fprint(io::stderr(), "fprint: stderr aldsjalsdjlasjdlja\n")!!;
io::fprintf(io::stderr(), "fprintf: stderr aldsjalsdjlasjdlja\n")!!;
io::fprintf(io::stderr(), "fprintfn: stderr aldsjalsdjlasjdlja\n")!!;
test::is_equal(true, true);
test::eq(true, true);
}