Add a naive number implementation that uses doubles.

This commit is contained in:
Danila Fedorin 2017-07-24 11:13:18 -07:00
parent 239ab7b73f
commit 9345faf7d3
1 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,39 @@
package org.nwapw.abacus.number;
public class NaiveNumber implements Number {
private double value;
public NaiveNumber(double value) {
this.value = value;
}
@Override
public Number multiply(Number multiplier) {
if(!(multiplier instanceof NaiveNumber)) throw new IllegalArgumentException();
return new NaiveNumber(value * ((NaiveNumber)multiplier).value);
}
@Override
public Number divide(Number divisor) {
if(!(divisor instanceof NaiveNumber)) throw new IllegalArgumentException();
return new NaiveNumber(value * ((NaiveNumber)divisor).value);
}
@Override
public Number add(Number summand) {
if(!(summand instanceof NaiveNumber)) throw new IllegalArgumentException();
return new NaiveNumber(value * ((NaiveNumber)summand).value);
}
@Override
public Number subtract(Number subtrahend) {
if(!(subtrahend instanceof NaiveNumber)) throw new IllegalArgumentException();
return new NaiveNumber(value * ((NaiveNumber)subtrahend).value);
}
@Override
public Number negate() {
return new NaiveNumber(-value);
}
}