mathsteps-experimental-fork
Version:
Step by step math solutions. Experimental Fork
33 lines (28 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const index = require('../index.js');
const equationEvaluation = require('../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";
index.default.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: equationEvaluation.assessUserEquationSteps(stepsAsText)
};
};
exports.getAssessSolvedProblemSteps = getAssessSolvedProblemSteps;
exports.getNodeStepsToSolveEquation = getNodeStepsToSolveEquation;