package test.util; import net.sf.latexdraw.models.MathUtils; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class TestLNumber { @Test public void testEqualsEqual() { assertTrue(MathUtils.INST.equalsDouble(10, 0, 10)); assertTrue(MathUtils.INST.equalsDouble(-10, 0, 10)); } @Test public void testEquals1() { double a = 1. / 3.; double b = 0.333333333333333; assertTrue(MathUtils.INST.equalsDouble(a, b)); b = 0.3299; assertFalse(MathUtils.INST.equalsDouble(a, b)); a = -1. / 3.; b = -0.333333333333333; assertTrue(MathUtils.INST.equalsDouble(a, b)); b = -0.3299; assertFalse(MathUtils.INST.equalsDouble(a, b)); } @Test public void testEquals2() { double a = 1. / 3.; double b = 0.333333333333333; assertTrue(MathUtils.INST.equalsDouble(a, b, 0.00001)); b = 0.3299; assertFalse(MathUtils.INST.equalsDouble(a, b, 0.00000001)); assertTrue(MathUtils.INST.equalsDouble(a, b, 0.01)); a = -1. / 3.; b = -0.333333333333333; assertTrue(MathUtils.INST.equalsDouble(a, b, 0.00001)); b = -0.3299; assertFalse(MathUtils.INST.equalsDouble(a, b, 0.00000001)); assertFalse(MathUtils.INST.equalsDouble(a, b, -0.00000001)); assertFalse(MathUtils.INST.equalsDouble(a, b, 0.)); assertTrue(MathUtils.INST.equalsDouble(a, b, 0.01)); } @Test public void testGetCutNumber1() { double v = 0.333333333333333; assertEquals(v, MathUtils.INST.getCutNumber(v, 0.1), 0.0001); assertEquals(v, MathUtils.INST.getCutNumber(v, 0.2), 0.0001); assertEquals(v, MathUtils.INST.getCutNumber(v, 0.3), 0.0001); assertEquals(0., MathUtils.INST.getCutNumber(v, 0.34), 0.0001); v = 0.000001; assertEquals(v, MathUtils.INST.getCutNumber(v, 0.00000001), 0.0001); assertEquals(0., MathUtils.INST.getCutNumber(v, 0.00001), 0.0001); v = 1E-10; assertEquals(0., MathUtils.INST.getCutNumber(v, 0.00000001), 0.0001); } @Test public void testGetCutNumber2() { float v = 0.333333333333333f; assertEquals(v, MathUtils.INST.getCutNumber(v, 0.1), 0.0001); assertEquals(v, MathUtils.INST.getCutNumber(v, 0.2), 0.0001); assertEquals(v, MathUtils.INST.getCutNumber(v, 0.3), 0.0001); assertEquals(0f, MathUtils.INST.getCutNumber(v, 0.34), 0.0001); v = 0.000001f; assertEquals(v, MathUtils.INST.getCutNumber(v, 0.00000001), 0.0001); assertEquals(0f, MathUtils.INST.getCutNumber(v, 0.00001), 0.0001); v = 1E-10f; assertEquals(0f, MathUtils.INST.getCutNumber(v, 0.00000001), 0.0001); } }