mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
test::eq/ne/gt syntax (#1928)
* test::eq/ne/gt syntax * renamed @almost to test::eq_approx
This commit is contained in:
committed by
GitHub
parent
ef72e19bf0
commit
3a502feb1d
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user