![JAR search and dependency download from the Maven repository](/logo.png)
com.github.dakusui.lisj.func.math.NumericFunc Maven / Gradle / Ivy
package com.github.dakusui.lisj.func.math;
import java.math.BigDecimal;
import java.util.Iterator;
import com.github.dakusui.jcunit.core.Utils;
import com.github.dakusui.jcunit.exceptions.ObjectUnderFrameworkException;
import com.github.dakusui.lisj.Context;
import com.github.dakusui.lisj.FormResult;
import com.github.dakusui.lisj.func.BaseFunc;
import static com.github.dakusui.lisj.Basic.*;
public abstract class NumericFunc extends BaseFunc {
private static final long serialVersionUID = -4320393403606841222L;
@Override
protected FormResult evaluateLast(Context context,
Object[] evaluatedParams, FormResult lastResult) {
FormResult ret = lastResult;
BigDecimal[] evaluatedParamsBigDecimal = new BigDecimal[evaluatedParams.length];
int i = 0;
for (Object cur : evaluatedParams) {
if (cur instanceof Number) evaluatedParamsBigDecimal[i] = Utils.bigDecimal((Number) cur);
else {
String message = String.format("Given value %s(%s) isn't a number.", cur, cur != null ? cur.getClass() : null);
throw new ObjectUnderFrameworkException(message, null);
}
i++;
}
ret.value(bigDecimalsEvaluateLast(context, evaluatedParamsBigDecimal));
return ret;
}
abstract protected BigDecimal bigDecimalsEvaluateLast(Context context, BigDecimal[] evaluatedParams);
@Override
protected Object checkParams(Object params) {
Iterator
© 2015 - 2025 Weber Informatics LLC | Privacy Policy