Reformat code and remove unused code
This commit is contained in:
@@ -21,6 +21,7 @@ import jscl.math.function.Function;
|
||||
import jscl.math.function.FunctionsRegistry;
|
||||
import jscl.math.function.IConstant;
|
||||
import jscl.math.function.PostfixFunctionsRegistry;
|
||||
import jscl.math.function.*;
|
||||
import jscl.math.operator.Operator;
|
||||
import jscl.math.operator.Percent;
|
||||
import jscl.math.operator.Rand;
|
||||
@@ -30,6 +31,12 @@ import jscl.text.ParseException;
|
||||
import static midpcalc.Real.NumberFormat.FSE_ENG;
|
||||
import static midpcalc.Real.NumberFormat.FSE_NONE;
|
||||
import static midpcalc.Real.NumberFormat.FSE_SCI;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.math.BigInteger;
|
||||
import java.util.List;
|
||||
|
||||
import static midpcalc.Real.NumberFormat.*;
|
||||
|
||||
public class JsclMathEngine implements MathEngine {
|
||||
|
||||
@@ -65,14 +72,6 @@ public class JsclMathEngine implements MathEngine {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private static int integerValue(final double value) throws NotIntegerException {
|
||||
if (Math.floor(value) == value) {
|
||||
return (int) value;
|
||||
} else {
|
||||
throw NotIntegerException.get();
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public String evaluate(@Nonnull String expression) throws ParseException {
|
||||
return evaluateGeneric(expression).toString();
|
||||
@@ -252,21 +251,6 @@ public class JsclMathEngine implements MathEngine {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public String convert(@Nonnull Double value, @Nonnull NumeralBase to) {
|
||||
String ungroupedValue;
|
||||
try {
|
||||
// check if double can be converted to integer
|
||||
integerValue(value);
|
||||
|
||||
ungroupedValue = to.toString(new BigDecimal(value).toBigInteger());
|
||||
} catch (NotIntegerException e) {
|
||||
ungroupedValue = to.toString(value, precision);
|
||||
}
|
||||
|
||||
return addGroupingSeparators(to, ungroupedValue);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public MessageRegistry getMessageRegistry() {
|
||||
return messageRegistry;
|
||||
@@ -277,32 +261,35 @@ public class JsclMathEngine implements MathEngine {
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public String addGroupingSeparators(@Nonnull NumeralBase nb, @Nonnull String ungroupedDoubleValue) {
|
||||
if (hasGroupingSeparator()) {
|
||||
final String groupingSeparator = getGroupingSeparator(nb);
|
||||
|
||||
final int dotIndex = ungroupedDoubleValue.indexOf(".");
|
||||
|
||||
String ungroupedValue;
|
||||
if (dotIndex >= 0) {
|
||||
ungroupedValue = ungroupedDoubleValue.substring(0, dotIndex);
|
||||
} else {
|
||||
ungroupedValue = ungroupedDoubleValue;
|
||||
}
|
||||
// inject group separator in the resulted string
|
||||
// NOTE: space symbol is always used!!!
|
||||
StringBuilder result = insertSeparators(nb, groupingSeparator, ungroupedValue, true);
|
||||
|
||||
result = result.reverse();
|
||||
|
||||
if (dotIndex >= 0) {
|
||||
result.append(insertSeparators(nb, groupingSeparator, ungroupedDoubleValue.substring(dotIndex), false));
|
||||
}
|
||||
|
||||
return result.toString();
|
||||
} else {
|
||||
return ungroupedDoubleValue;
|
||||
@Override
|
||||
public String format(@Nonnull String value, @Nonnull NumeralBase nb) {
|
||||
if (!useGroupingSeparator) {
|
||||
return value;
|
||||
}
|
||||
final int dot = value.indexOf('.');
|
||||
if (dot >= 0) {
|
||||
final String intPart = dot != 0 ? insertSeparators(value.substring(0, dot), nb) : "";
|
||||
return intPart + value.substring(dot);
|
||||
}
|
||||
final int e = nb == NumeralBase.hex ? -1 : value.indexOf('E');
|
||||
if (e >= 0) {
|
||||
final String intPart = e != 0 ? insertSeparators(value.substring(0, e), nb) : "";
|
||||
return intPart + value.substring(e);
|
||||
}
|
||||
return insertSeparators(value, nb);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public String insertSeparators(@Nonnull String value, @Nonnull NumeralBase nb) {
|
||||
final String separator = getGroupingSeparator(nb);
|
||||
final StringBuilder result = new StringBuilder(value.length() + nb.getGroupingSize() * separator.length());
|
||||
for (int i = value.length() - 1; i >= 0; i--) {
|
||||
result.append(value.charAt(i));
|
||||
if (i != 0 && (value.length() - i) % nb.getGroupingSize() == 0) {
|
||||
result.append(separator);
|
||||
}
|
||||
}
|
||||
return result.reverse().toString();
|
||||
}
|
||||
|
||||
private boolean hasGroupingSeparator() {
|
||||
@@ -318,30 +305,8 @@ public class JsclMathEngine implements MathEngine {
|
||||
return nb == NumeralBase.dec ? groupingSeparator : ' ';
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private StringBuilder insertSeparators(@Nonnull NumeralBase nb,
|
||||
@Nonnull String groupingSeparator,
|
||||
@Nonnull String value,
|
||||
boolean reversed) {
|
||||
final StringBuilder result = new StringBuilder(value.length() + nb.getGroupingSize() * groupingSeparator.length());
|
||||
|
||||
if (reversed) {
|
||||
for (int i = value.length() - 1; i >= 0; i--) {
|
||||
result.append(value.charAt(i));
|
||||
if (i != 0 && (value.length() - i) % nb.getGroupingSize() == 0) {
|
||||
result.append(groupingSeparator);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < value.length(); i++) {
|
||||
result.append(value.charAt(i));
|
||||
if (i != 0 && i != value.length() - 1 && i % nb.getGroupingSize() == 0) {
|
||||
result.append(groupingSeparator);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
public void setRoundResult(boolean roundResult) {
|
||||
this.roundResult = roundResult;
|
||||
}
|
||||
|
||||
public void setPrecision(int precision) {
|
||||
|
@@ -51,7 +51,7 @@ public interface MathContext {
|
||||
String format(double value, @Nonnull NumeralBase nb);
|
||||
|
||||
@Nonnull
|
||||
String addGroupingSeparators(@Nonnull NumeralBase nb, @Nonnull String ungroupedIntValue);
|
||||
String format(@Nonnull String value, @Nonnull NumeralBase nb);
|
||||
|
||||
void setNotation(int notation);
|
||||
}
|
||||
|
@@ -26,9 +26,6 @@ public interface MathEngine extends MathContext {
|
||||
@Nonnull
|
||||
Generic elementaryGeneric(@Nonnull String expression) throws ParseException;
|
||||
|
||||
@Nonnull
|
||||
String convert(@Nonnull Double value, @Nonnull NumeralBase to);
|
||||
|
||||
@Nonnull
|
||||
MessageRegistry getMessageRegistry();
|
||||
|
||||
|
Reference in New Issue
Block a user