mathsteps-experimental-fork
Version:
Step by step math solutions. Experimental Fork
28 lines (25 loc) • 932 B
JavaScript
import math from '../index.js';
import { assessUserEquationSteps } from '../simplifyExpression/equationEvaluation.js';
function getNodeStepsToSolveEquation(equation, variable = null) {
if (typeof equation === "object")
equation = `${equation.left}=${equation.right}`;
const equationSteps = [];
const unknownVariable = variable ?? equation.toLowerCase().match(/[a-z]/i)?.[0] ?? "x";
math.solveEquation({
equationAsText: equation,
unknownVariable,
onStepCb(step) {
equationSteps.push({ ...step, equationString: step.equation.toString() });
}
});
return equationSteps;
}
const getAssessSolvedProblemSteps = (problem) => {
const steps = getNodeStepsToSolveEquation(problem);
const stepsAsText = steps.map((step) => step.equationString);
return {
steps,
assessedSteps: assessUserEquationSteps(stepsAsText)
};
};
export { getAssessSolvedProblemSteps, getNodeStepsToSolveEquation };