-
-
Notifications
You must be signed in to change notification settings - Fork 10
feat(table): Add table for AGC 001 onwards (#2837) #2877
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdds AGC001OnwardsProvider to filter/display AGC contests (prefix Changes
Sequence Diagram(s)sequenceDiagram
participant TestRunner
participant AGCProvider as AGC001OnwardsProvider
participant FilterFn as setFilterCondition
participant TaskStore as TaskResultSet
TestRunner->>AGCProvider: instantiate provider
TestRunner->>AGCProvider: request metadata & table data
AGCProvider->>FilterFn: build filter (prefix 'agc', parse numeric round)
activate FilterFn
FilterFn->>TaskStore: evaluate each TaskResult
TaskStore-->>FilterFn: include if round ∈ [1,999] and prefix valid
FilterFn-->>AGCProvider: return filtered tasks
deactivate FilterFn
AGCProvider->>TestRunner: return metadata, labels, table structure
Note right of TestRunner: Assertions on counts, labels, patterns, headers
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro Cache: Disabled due to data retention organization setting Knowledge base: Disabled due to data retention organization setting 📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (1)
Tip 📝 Customizable high-level summaries are now available in beta!You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.
Example instruction:
Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
docs/dev-notes/2025-11-19/add_tests_for_contest_table_provider/plan.md (1)
80-115: Add language specifiers to code blocks for better readability.The markdown linter flags several code blocks that are missing language specifiers. Adding these would improve syntax highlighting and readability.
Apply this pattern to the code blocks at lines 80, 90, 100, and 110:
-``` +```text task_table_index: A, B, C, D</blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used**: CodeRabbit UI **Review profile**: CHILL **Plan**: Pro **Cache: Disabled due to data retention organization setting** **Knowledge base: Disabled due to data retention organization setting** <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 89ae04deb6fd7394727ceecc7cb5e2ebe9a0ba5b and be2a875ddf9a3224e9dca079f5ac3cd60357f22c. </details> <details> <summary>📒 Files selected for processing (4)</summary> * `docs/dev-notes/2025-11-19/add_tests_for_contest_table_provider/plan.md` (1 hunks) * `src/lib/utils/contest_table_provider.ts` (3 hunks) * `src/test/lib/utils/contest_table_provider.test.ts` (5 hunks) * `src/test/lib/utils/test_cases/contest_table_provider.ts` (1 hunks) </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>🧬 Code graph analysis (1)</summary> <details> <summary>src/lib/utils/contest_table_provider.ts (3)</summary><blockquote> <details> <summary>src/lib/types/task.ts (1)</summary> * `TaskResult` (64-72) </details> <details> <summary>src/lib/utils/contest.ts (2)</summary> * `classifyContest` (5-97) * `getContestNameLabel` (327-398) </details> <details> <summary>src/lib/types/contest_table_provider.ts (1)</summary> * `ContestTableMetaData` (122-125) </details> </blockquote></details> </details><details> <summary>🪛 markdownlint-cli2 (0.18.1)</summary> <details> <summary>docs/dev-notes/2025-11-19/add_tests_for_contest_table_provider/plan.md</summary> 80-80: Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 90-90: Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 100-100: Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 110-110: Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> </details> <details> <summary>⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)</summary> * GitHub Check: preview </details> <details> <summary>🔇 Additional comments (5)</summary><blockquote> <details> <summary>src/lib/utils/contest_table_provider.ts (2)</summary><blockquote> `285-310`: **LGTM! Well-structured AGC provider implementation.** The AGC001OnwardsProvider follows the established pattern from ARC104OnwardsProvider and correctly: - Filters AGC contests from round 1 to 999 - Returns appropriate metadata with title and abbreviation name - Formats contest round labels consistently - Leverages the enhanced parseContestRound validation --- `775-782`: **Proper registration in presets and global groups.** The AGC001Onwards provider is correctly registered in both: - `prepareContestProviderPresets()` as a factory function - `contestTableProviderGroups` for global access This follows the established registration pattern for other providers. Also applies to: 844-844 </blockquote></details> <details> <summary>src/test/lib/utils/contest_table_provider.test.ts (2)</summary><blockquote> `12-12`: **Proper test setup with AGC support.** The test file correctly: - Imports the AGC001OnwardsProvider and its test fixtures - Extends the mock for `classifyContest` to recognize AGC contests - Extends the mock for `getContestNameLabel` to format AGC labels This ensures AGC contests are properly classified and labeled during tests. Also applies to: 31-31, 41-42, 67-68 --- `537-712`: **Comprehensive test coverage for AGC001Onwards provider.** The test suite thoroughly validates all aspects of the AGC001OnwardsProvider: - Filtering logic (rounds 1-999, AGC type only) - Metadata and display configuration - Contest round and header ID generation - All problem patterns (4/5/6/7 problems) - Sort order stability - Edge cases (mixed types, below AGC001, empty results) The tests follow established patterns from ARC104Onwards and cover all requirements from the plan document. </blockquote></details> <details> <summary>src/test/lib/utils/test_cases/contest_table_provider.ts (1)</summary><blockquote> `449-544`: **Excellent test fixture design covering all AGC problem patterns.** The AGC fixtures comprehensively cover all documented problem patterns: - **AGC001, AGC002**: 6-problem standard pattern (A-F) - **AGC009, AGC074**: 5-problem pattern (A-E) - **AGC028**: 7-problem pattern with F2 (unique case) - **AGC073**: 4-problem pattern (unique case) Each fixture includes varied status combinations (AC, AC_WITH_EDITORIAL, TRYING, PENDING) for thorough testing. The export aggregates all 33 tasks correctly. </blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
KATO-Hiro
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
close #2837
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Data
✏️ Tip: You can customize this high-level summary in your review settings.