|
@@ -19,6 +19,7 @@
|
|
|
|
|
|
package org.elasticsearch.common;
|
|
|
|
|
|
+import com.carrotsearch.randomizedtesting.annotations.Timeout;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
@@ -27,19 +28,26 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
public class NumbersTests extends ESTestCase {
|
|
|
|
|
|
+ @Timeout(millis = 10000)
|
|
|
public void testToLong() {
|
|
|
assertEquals(3L, Numbers.toLong("3", false));
|
|
|
assertEquals(3L, Numbers.toLong("3.1", true));
|
|
|
assertEquals(9223372036854775807L, Numbers.toLong("9223372036854775807.00", false));
|
|
|
assertEquals(-9223372036854775808L, Numbers.toLong("-9223372036854775808.00", false));
|
|
|
+ assertEquals(9223372036854775807L, Numbers.toLong("9223372036854775807.00", true));
|
|
|
+ assertEquals(-9223372036854775808L, Numbers.toLong("-9223372036854775808.00", true));
|
|
|
+ assertEquals(9223372036854775807L, Numbers.toLong("9223372036854775807.99", true));
|
|
|
+ assertEquals(-9223372036854775808L, Numbers.toLong("-9223372036854775808.99", true));
|
|
|
|
|
|
- IllegalArgumentException e = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> Numbers.toLong("9223372036854775808", false));
|
|
|
- assertEquals("Value [9223372036854775808] is out of range for a long", e.getMessage());
|
|
|
+ assertEquals("Value [9223372036854775808] is out of range for a long", expectThrows(IllegalArgumentException.class,
|
|
|
+ () -> Numbers.toLong("9223372036854775808", false)).getMessage());
|
|
|
+ assertEquals("Value [-9223372036854775809] is out of range for a long", expectThrows(IllegalArgumentException.class,
|
|
|
+ () -> Numbers.toLong("-9223372036854775809", false)).getMessage());
|
|
|
|
|
|
- e = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> Numbers.toLong("-9223372036854775809", false));
|
|
|
- assertEquals("Value [-9223372036854775809] is out of range for a long", e.getMessage());
|
|
|
+ assertEquals("Value [1e99999999] is out of range for a long", expectThrows(IllegalArgumentException.class,
|
|
|
+ () -> Numbers.toLong("1e99999999", false)).getMessage());
|
|
|
+ assertEquals("Value [-1e99999999] is out of range for a long", expectThrows(IllegalArgumentException.class,
|
|
|
+ () -> Numbers.toLong("-1e99999999", false)).getMessage());
|
|
|
}
|
|
|
|
|
|
public void testToLongExact() {
|