![JAR search and dependency download from the Maven repository](/logo.png)
com.github.dakusui.lisj.func.math.NumericFunc Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jcunit Show documentation
Show all versions of jcunit Show documentation
Automated combinatorial testing framework on top of JUnit
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