/** Run some test code. Any "public void test*()" method starting with "test" will be used */ public void testEverything() { Almost a = new Almost(); // should obviously succeed. No precision involved assert (a.between(1., 0., 2.)); assert (a.between(-1., 0., -2.)); assert (a.between(-1., -0.5, -2.)); assert (a.outside(1., 0., 2.) == 0); assert (a.outside(1., 0.5, 2.) == 0); assert (a.outside(-1., 0., -2.) == 0); assert (a.outside(-1., -0.5, -2.) == 0); assert (a.cmp(1., 0.) > 0); assert (a.cmp(0., 1.) < 0); assert (a.cmp(1., 1.) == 0); assert (a.cmp(0., 0.) == 0); assert (a.equal(3., 3.)); assert (a.equal(0., 0.)); assert (a.zero(0.)); // Succeed if precision handled correctly assert (a.zero(a.getMinValue() / 2.)); assert (!a.zero(a.getMinValue() * 2.)); assert (1. != 1. + a.getEpsilon()); assert (1. != 1. - a.getEpsilon()); assert (0. != a.getMinValue()); assert (a.equal(1., 1. + a.getEpsilon() / 2.)); assert (!a.equal(1., 1. + a.getEpsilon() * 2.1)); assert (a.equal(1., 1.000000000001)); assert (a.getMinValue() / 2. > 0.); assert (a.equal(0., a.getMinValue() / 2.)); assert (a.between(1., 1.000000000001, 2.)); assert (a.between(-1., -1.000000000001, -2.)); assert (a.outside(1., 1.000000000001, 2.) == 0); assert (a.cmp(1., 1.000000000001) == 0); }