package cc.blynk.utils; import org.junit.Test; import java.util.concurrent.ThreadLocalRandom; import static cc.blynk.utils.NumberUtil.NO_RESULT; import static cc.blynk.utils.NumberUtil.parseDouble; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; /** * The Blynk Project. * Created by Dmitriy Dumanskiy. * Created on 23.01.17. */ public class NumberUtilTest { @Test public void testCorrectResultForInt() { for (int i = 0; i < 10_000; i++) { int random = ThreadLocalRandom.current().nextInt(Integer.MIN_VALUE, Integer.MAX_VALUE); double parsed = parseDouble(String.valueOf(random)); //System.out.println(random); assertEquals(random, parsed, 0.0000000001); } } @Test public void testCorrectResultForDouble() { for (int i = 0; i < 10_000; i++) { double random = ThreadLocalRandom.current().nextDouble(-100000, 100000); double parsed = parseDouble(String.valueOf(random)); //System.out.println(random); assertEquals(random, parsed, 0.0000000001); } } @Test public void testCorrectResultForDouble2() { for (int i = 0; i < 10_000; i++) { double random = ThreadLocalRandom.current().nextDouble(); double parsed = parseDouble(String.valueOf(random)); //System.out.println(random); assertEquals(random, parsed, 0.0000000001); } } @Test(expected = NullPointerException.class) public void testExpectError() { parseDouble(null); } @Test public void testExpectError2() { assertTrue(parseDouble("") == NO_RESULT); } @Test public void testExpectError3() { assertTrue(parseDouble("123.123F") == NO_RESULT); } @Test public void testExpectError4() { assertTrue(parseDouble("p 123.123") == NO_RESULT); } @Test public void testExpectError5() { assertTrue(parseDouble("p 123.123") == NO_RESULT); } @Test public void testCustomValue() { double d; d = parseDouble("0"); assertEquals(d, 0, 0.0000000001); d = parseDouble("0.0"); assertEquals(d, 0, 0.0000000001); d = parseDouble("1.0"); assertEquals(d, 1.0, 0.0000000001); d = parseDouble("+1.0"); assertEquals(d, 1.0, 0.0000000001); d = parseDouble("-1.0"); assertEquals(d, -1.0, 0.0000000001); } }