CONTRACTS: Display contract answers on completely failed contracts (#2440)

This commit is contained in:
Adam Weeden
2026-01-08 16:21:52 -05:00
committed by GitHub
parent edf3d11b72
commit 7af9dca6bc
23 changed files with 221 additions and 48 deletions
@@ -1,5 +1,6 @@
import { CodingContractName } from "@enums";
import { removeBracketsFromArrayString, type CodingContractTypes } from "../ContractTypes";
import { exceptionAlert } from "../../utils/helpers/exceptionAlert";
import { getRandomIntInclusive } from "../../utils/helpers/getRandomIntInclusive";
export const spiralizeMatrix: Pick<CodingContractTypes, CodingContractName.SpiralizeMatrix> = {
@@ -55,7 +56,7 @@ export const spiralizeMatrix: Pick<CodingContractTypes, CodingContractName.Spira
return matrix;
},
solver: (data, answer) => {
getAnswer: (data) => {
const spiral: number[] = [];
const m: number = data.length;
const n: number = data[0].length;
@@ -107,6 +108,22 @@ export const spiralizeMatrix: Pick<CodingContractTypes, CodingContractName.Spira
}
}
return spiral;
},
solver: (data, answer) => {
const spiral = spiralizeMatrix[CodingContractName.SpiralizeMatrix].getAnswer(data);
if (spiral === null) {
exceptionAlert(
new Error(
`Unexpected null when calculating the answer for ${
CodingContractName.SpiralizeMatrix
} contract. Data: ${JSON.stringify(data)}`,
),
);
return false;
}
return spiral.length === answer.length && spiral.every((n, i) => n === answer[i]);
},
convertAnswer: (ans) => {