瀏覽代碼

NumberTraits

Ranides Atterwim 1 年之前
父節點
當前提交
cec110aef5

+ 12 - 0
assira.core/src/main/java/net/ranides/assira/math/NumberTraits.java

@@ -28,4 +28,16 @@ public class NumberTraits {
         return value % 2 == 0;
     }
 
+    public static boolean isZero(Number value) {
+        return isInt(value) && value.intValue() == 0;
+    }
+
+    public static boolean isOne(Number value) {
+        return isInt(value) && value.intValue() == 1;
+    }
+
+    public static boolean isInt(Number value) {
+        return value.intValue() == value.doubleValue();
+    }
+
 }

+ 19 - 0
assira.core/src/test/java/net/ranides/assira/math/NumberTraitsTest.java

@@ -0,0 +1,19 @@
+package net.ranides.assira.math;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class NumberTraitsTest {
+
+    @Test
+    public void isInt() {
+        assertTrue(NumberTraits.isInt(10));
+        assertTrue(NumberTraits.isInt(15));
+        assertTrue(NumberTraits.isInt(400));
+
+        assertFalse(NumberTraits.isInt(10.1));
+        assertFalse(NumberTraits.isInt(15.0002));
+        assertFalse(NumberTraits.isInt(399.9999));
+    }
+}