Add Section 3 - Add/Less to PM-L1 competition mock + assessment - #431
Merged
Conversation
Adds a third section to PM-L1's mock exam and section-wise assessment workflow, alongside the existing Section 1 - Addition and Section 2 - Subtraction. Section 3 - Add/Less covers the genuinely-mixed generation (both + and - within the same question) that exists in exactly three places across PM-L1's 15 lessons: Lesson 1's direct add-less (1D, 1D_AND_2D), Lesson 2's direct add-less (2D_FULL, 3D_HUNDREDS, 3D_FULL), and Lesson 11 DPS5's complement-of-10 add-less for target 5. Every other lesson is locked to a single direction per lesson, so those stay exclusive to Sections 1/2 via the existing operation-focus-split entries. Section 3's six concept-pool entries reuse the same underlying DPS concepts with their native operation_focus="ADD_LESS", verified end-to-end to produce both positive and negative steps within the same question set (not a relabelled single direction). Changes: - pm_competition_mock_generation_service.py: new PM_ADD_LESS section definition + _add_less_pool(), wired into PM_COMPETITION_SECTION_CONCEPT_POOLS. Structure name updated from PM_2_SECTION_* to PM_3_SECTION_*. - competition_mock_generation_service.py: PM branch's section-plan structure label updated to match (the per-section split itself was already generic across N sections, no logic change needed). - Assessment blueprint/engine services needed no changes -- they read PM_COMPETITION_LEVEL_REGISTRY's sectionDefinitions/sectionConceptPools generically, so Section 3 is picked up automatically for section-wise assessments too. - Mock-side section omission (admin zeroing a section in the Section Allocation panel) already works generically for any number of PM sections via the shared _RedistributeSectionCounts/_DenseSectionNumbering utilities -- confirmed no PM-specific code was needed for this. Per explicit product decision, the assessment side is left as-is: it has no section-omission capability for any module today (full section coverage with count > 0 is required), and that is intentionally not changed here. Tests: updated existing PM mock/assessment tests for the 3-section structure (section splits, structure-name strings, full-coverage validation, published-blueprint section counts), and added a new test asserting each of Section 3's 6 concept-pool entries genuinely produces both positive and negative operand steps across a sample. Full backend suite: 158/158 passing.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Section 3 - Add/Less to PM-L1's mock and assessment workflows, covering the genuinely mixed add-and-subtract-in-the-same-question concepts from Lesson 1, Lesson 2, and Lesson 11 DPS5. Assessment section-omission left unchanged (doesn't exist for any module today, per product decision). 158/158 backend tests passing.