|
@@ -8,14 +8,17 @@ package net.ranides.assira.math;
|
|
|
|
|
|
|
|
import java.util.SortedMap;
|
|
import java.util.SortedMap;
|
|
|
import java.util.TreeMap;
|
|
import java.util.TreeMap;
|
|
|
|
|
+import net.ranides.assira.annotations.PMD;
|
|
|
import net.ranides.assira.text.StringUtils;
|
|
import net.ranides.assira.text.StringUtils;
|
|
|
import static org.junit.Assert.*;
|
|
import static org.junit.Assert.*;
|
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- *
|
|
|
|
|
|
|
+ *
|
|
|
* @author ranides
|
|
* @author ranides
|
|
|
*/
|
|
*/
|
|
|
|
|
+@PMD.UnitTest
|
|
|
|
|
+@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
|
|
public class PVNumberTest {
|
|
public class PVNumberTest {
|
|
|
|
|
|
|
|
private static final class RINumber extends PVNumber {
|
|
private static final class RINumber extends PVNumber {
|
|
@@ -75,14 +78,6 @@ import org.junit.Test;
|
|
|
data.put(exponent, value);
|
|
data.put(exponent, value);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// public static RINumber valueOf(PVNumber value) {
|
|
|
|
|
-// RINumber ret = new RINumber(value.base());
|
|
|
|
|
-// for(int i=value.begin(), n=value.end(); i<=n; i++) {
|
|
|
|
|
-// ret.set(i, value.get(i));
|
|
|
|
|
-// }
|
|
|
|
|
-// return ret;
|
|
|
|
|
-// }
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public PVNumberTest() {
|
|
public PVNumberTest() {
|
|
@@ -100,30 +95,30 @@ import org.junit.Test;
|
|
|
assertEquals(367.75, a.doubleValue(), 1e-6);
|
|
assertEquals(367.75, a.doubleValue(), 1e-6);
|
|
|
assertEquals(367.75, a.floatValue(), 1e-6);
|
|
assertEquals(367.75, a.floatValue(), 1e-6);
|
|
|
assertEquals("367.75", a.toString() );
|
|
assertEquals("367.75", a.toString() );
|
|
|
|
|
+ assertEquals("4567.12", ri("1234567.1234567").toString(4,2) );
|
|
|
|
|
|
|
|
|
|
+ assertEquals(2.345678E-21, ri(20, "23456789").floatValue(), 0.000001E-21 );
|
|
|
|
|
+ assertEquals(2.3456E-41, ri(40, "23456789").floatValue(), 0.0001E-41 );
|
|
|
|
|
+ assertEquals(2.345678E-316, ri(315, "23456789").doubleValue(), 0.000001E-316 );
|
|
|
|
|
+ assertEquals(2.3456789E-31, ri(30, "23456789").doubleValue(), 0.0000001E-31 );
|
|
|
|
|
|
|
|
- System.out.println( new RINumber("1234567.1234567").toString(4,2) );
|
|
|
|
|
-
|
|
|
|
|
- System.out.println( new RINumber("0."+D(20)+"23456789").floatValue() );
|
|
|
|
|
-
|
|
|
|
|
- System.out.println( new RINumber("0."+D(40)+"23456789").floatValue() );
|
|
|
|
|
|
|
+ assertTrue( ri("367.75").compareTo(ri("367.72")) > 0 );
|
|
|
|
|
+ assertTrue( ri("367.72").compareTo(ri("367.75")) < 0);
|
|
|
|
|
|
|
|
- System.out.println( new RINumber("0."+D(315)+"23456789").doubleValue() );
|
|
|
|
|
|
|
+ assertTrue( ri("367.75").compareTo(ri("3677.5")) < 0);
|
|
|
|
|
+ assertTrue( ri("3677.5").compareTo(ri("367.75")) > 0);
|
|
|
|
|
|
|
|
- System.out.println( new RINumber("0."+D(30)+"23456789").doubleValue() );
|
|
|
|
|
|
|
+ assertTrue( ri("15").compareTo(ri("14")) > 0);
|
|
|
|
|
+ assertTrue( ri("14").compareTo(ri("15")) < 0);
|
|
|
|
|
|
|
|
- System.out.println( new RINumber("367.75").compareTo(new RINumber("367.72")) > 0);
|
|
|
|
|
- System.out.println( new RINumber("367.72").compareTo(new RINumber("367.75")) < 0);
|
|
|
|
|
- System.out.println( new RINumber("367.75").compareTo(new RINumber("3677.5")) < 0);
|
|
|
|
|
- System.out.println( new RINumber("3677.5").compareTo(new RINumber("367.75")) > 0);
|
|
|
|
|
-
|
|
|
|
|
- System.out.println( new RINumber("15").compareTo(new RINumber("14")) > 0);
|
|
|
|
|
- System.out.println( new RINumber("14").compareTo(new RINumber("15")) < 0);
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ private static PVNumber ri(int zeros, String value) {
|
|
|
|
|
+ return new RINumber("0." + StringUtils.nCopies(zeros, '0') + value);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private static String D(int n) {
|
|
|
|
|
- return StringUtils.nCopies(n, '0').toString();
|
|
|
|
|
|
|
+ private static PVNumber ri(String value) {
|
|
|
|
|
+ return new RINumber(value);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|