check for errors #2
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
navicore/seqlings#2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@claude please review the exercises against https://github.com/navicore/patch-seq and see if the tests make sense.
Claude finished @navicore's task in 3m 28s —— View job
Code Review Complete
I've reviewed the 141 exercise files in the seqlings repository and analyzed their test patterns. Here's my detailed feedback:
Overall Assessment
The exercise tests are well-structured and pedagogically sound. The test design follows consistent patterns and effectively validates student understanding. Here are my findings:
✅ Strengths
Consistent Test Patterns
test.assert-eqfor value comparisons (163 uses)test.assertfor boolean checks (74 uses)string.equal?followed bytest.assertf.=(avoiding floating-point equality issues)Good Test Granularity
exercises/01-stack-basics/01-push.seq:21-26tests stack order with multiple assertionsProgressive Complexity
make-test-mapinexercises/16-maps/02-get.seq:17)Type-Safe Testing
variant.field-atfor list element accessnotappropriately⚠️ Potential Issues Found
List Element Access Pattern (
exercises/15-lists/02-map.seq:28-31)Issue: This assumes lists are implemented as variants internally and uses
variant.field-atto access elements. This is:Recommendation: Use proper list accessor words like
list.atorlist.nthif they exist, or add them to the language/stdlib. Same issue inexercises/15-lists/03-filter.seq:28-31.Missing Edge Case Tests
TCP/Network Exercise Tests (
exercises/26-tcp/01-listen.seq:20-28)Issue: These are conceptual tests that always pass (just checking
true). While this makes sense for I/O operations that can't easily run in tests, it provides no actual validation.Recommendation: Consider using a mock/stub pattern or at least check that students write the correct code structure, not just delete the "NOT DONE" marker.
String Equality Test Pattern
string.equal? test.assertinstead of a potentialtest.assert-string-eqtest.assert-string-eqfor consistency (low priority)🔍 Comparison with Patch-Seq Reference
Note: I couldn't access the patch-seq repository directly (WebFetch permission not granted), so I analyzed based on the seqlings implementation patterns and best practices for stack-based language testing.
📊 Test Coverage Statistics
test.assert-eq: 163 usestest.assert: 74 usesf.=): Properly used throughout float exercisesstring.equal?🎯 Recommendations
Final Verdict
The tests make sense and are well-designed for a learning environment. The main issue is the leaky abstraction in list testing (using
variant.field-at), which should be addressed. Otherwise, the test suite effectively validates student understanding while maintaining good pedagogical progression.https://github.com/navicore/seqlings/pull/3