In Number interface: remove one and zero (they can't be static), add compareTo and signum. Modify NaiveNumber accordingly.

This commit is contained in:
Arthur Drobot 2017-07-25 11:09:23 -07:00
parent 3b91304175
commit 254276b2af
2 changed files with 11 additions and 7 deletions

13
src/org/nwapw/abacus/number/NaiveNumber.java Normal file → Executable file
View File

@ -8,6 +8,9 @@ public class NaiveNumber implements Number {
this.value = value;
}
static final NaiveNumber ZERO = new NaiveNumber(0);
static final NaiveNumber ONE = new NaiveNumber(1);
@Override
public int precision() {
return 4;
@ -39,13 +42,14 @@ public class NaiveNumber implements Number {
}
@Override
public Number zero() {
return new NaiveNumber(0);
public int compareTo(Number number) {
NaiveNumber num = (NaiveNumber) number;
return Double.compare(value, num.value);
}
@Override
public Number one() {
return new NaiveNumber(1);
public int signum() {
return this.compareTo(ZERO);
}
@Override
@ -53,5 +57,6 @@ public class NaiveNumber implements Number {
if(toClass == this.getClass()) return this;
return null;
}
}

View File

@ -8,9 +8,8 @@ public interface Number {
Number add(Number summand);
Number subtract(Number subtrahend);
Number negate();
Number zero();
Number one();
int compareTo(Number number);
int signum();
Number promoteTo(Class<? extends Number> toClass);