diff --git a/pxtblocks/code-validation/rubric.ts b/pxtblocks/code-validation/rubric.ts deleted file mode 100644 index 0d7f6d10acb5..000000000000 --- a/pxtblocks/code-validation/rubric.ts +++ /dev/null @@ -1,30 +0,0 @@ -namespace pxt.blocks { - export class Rubric { - criteria: RubricCriteria[]; - - constructor(criteria: RubricCriteria[]) { - this.criteria = criteria; - } - } - - export function parseRubric(rubric: string): Rubric { - let rubricObj; - try { - rubricObj = JSON.parse(rubric); - } catch (e) { - console.error(`Error parsing rubric! ${e}`); - return null; - } - - if (!rubricObj.criteria) { - console.error(`No criteria found in rubric`); - return null; - } - - const criteria: RubricCriteria[] = rubricObj.criteria.map((c: CriteriaData) => { - return getCriteria(c); - }).filter((r: RubricCriteria) => !!r); - - return new Rubric(criteria); - } -} \ No newline at end of file diff --git a/pxtblocks/code-validation/rubricCriteria.ts b/pxtblocks/code-validation/rubricCriteria.ts deleted file mode 100644 index b119b05de870..000000000000 --- a/pxtblocks/code-validation/rubricCriteria.ts +++ /dev/null @@ -1,90 +0,0 @@ -namespace pxt.blocks { - interface BlockSet { - blocks: string[]; - count: number; - } - - export interface CriteriaData { - criteriaId: string; - displayText: string; - blockRequirements?: BlockSet[]; - count?: number; - } - - export function getCriteria(data: CriteriaData): RubricCriteria { - switch (data.criteriaId) { - case "blockCheck": - return new BlockCheckCriteria(data.displayText, data.blockRequirements); - case "comment": - return new CommentCriteria(data.displayText, data.count); - default: - console.error(`Unrecognized criteriaId: ${data.criteriaId}`); - return null; - } - } - - function blockSetToRequiredBlockCounts(blockSet: BlockSet): pxt.Map { - const requiredBlockCounts: pxt.Map = {}; - blockSet.blocks.forEach((block) => { - requiredBlockCounts[block] = blockSet.count; - }); - return requiredBlockCounts; - } - - function validateBlockSet(usedBlocks: Blockly.Block[], blockSet: BlockSet): pxt.Map { - const requiredBlockCounts = blockSetToRequiredBlockCounts(blockSet); - const blockResults: pxt.Map = {}; - Object.keys(requiredBlockCounts).forEach((blockId) => { - blockResults[blockId] = true; - }); - const { - missingBlocks, - disabledBlocks, - insufficientBlocks - } = pxt.blocks.validateBlocksExist({ - usedBlocks: usedBlocks, - requiredBlockCounts: requiredBlockCounts, - }); - missingBlocks.forEach((blockId) => { - blockResults[blockId] = false; - }); - disabledBlocks.forEach((blockId) => { - blockResults[blockId] = false; - }); - insufficientBlocks.forEach((blockId) => { - blockResults[blockId] = false; - }); - return blockResults; - } - - export abstract class RubricCriteria { - displayText: string; - abstract criteriaId: string; - - constructor(displayText: string) { - this.displayText = displayText; - } - } - - - class BlockCheckCriteria extends RubricCriteria { - criteriaId: "blockCheck"; - blockRequirements: BlockSet[]; - - constructor(displayText: string, blockRequirements: BlockSet[]) { - super(displayText); - this.blockRequirements = blockRequirements; - } - } - - class CommentCriteria extends RubricCriteria { - criteriaId: "comment"; - count: number; - - constructor(displayText: string, count: number) { - super(displayText); - this.count = count; - } - } - -} \ No newline at end of file