<feed xmlns='http://www.w3.org/2005/Atom'>
<title>org-drill/tests/test-integration-drill-session-simple-workflow-integration-test.el, branch main</title>
<subtitle>Spaced-repetition flashcards for Org Mode
</subtitle>
<id>https://git.cjennings.net/org-drill/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/org-drill/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/'/>
<updated>2026-05-28T02:40:43+00:00</updated>
<entry>
<title>refactor: take card-state in org-drill-determine-next-interval-sm5</title>
<updated>2026-05-28T02:40:43+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-28T02:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=a2a7471f88a8c0f5c710d5ffb90511fc54b432d7'/>
<id>urn:sha1:a2a7471f88a8c0f5c710d5ffb90511fc54b432d7</id>
<content type='text'>
Stage 4 of #147. sm5 now takes (state quality of-matrix &amp;optional delta-days) instead of nine positional args, binding the recall fields from the struct at the top so the algorithm body is unchanged. Both call-site branches pass the state they already hold, dropping the per-branch accessor unpacking.

The testutil adapter test-scheduler--call-sm5 keeps the sm5 test calls a one-symbol rename per site. I also kept the return as the existing list, matching the stage-3 refinement: the goal is reducing the input signature, and changing the return shape would force the shared return-extractors and every return-read to change for no real gain.

Also folds in two stage-3 follow-ons I missed when sm2 landed: a direct sm5 call in tests/test-org-drill-small-branch-coverage.el now uses the new struct API inline, and five direct sm2 calls in the simple-workflow integration test now go through the testutil adapter (the integration file picks up the testutil-scheduler require). Caught by running make test-integration this stage, which I should have run on the sm2 stage.
</content>
</entry>
<entry>
<title>refactor: thread card-state struct through the item-data round-trip</title>
<updated>2026-05-28T01:47:35+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-28T01:47:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=39d01b75ac679410821ce5e16c09ec6b7799f791'/>
<id>urn:sha1:39d01b75ac679410821ce5e16c09ec6b7799f791</id>
<content type='text'>
Second step of #147. get-item-data now returns an org-drill-card-state and store-item-data takes one, so the six recall fields move as named slots instead of a positional list. The three call sites (smart-reschedule, hypothetical-next-review-date, copy-scheduling-to-marker) read scheduler inputs through accessors and build a struct for the store, which removes the hand re-ordering between the get-shape and the store-shape.

Behavior is unchanged. The legacy LEARN_DATA read path and the virgin-item sentinel are preserved field-for-field, and store takes just the struct because its last-interval slot already holds the interval to persist. The schedulers still take positional args; they adopt the struct in the following commits.

I updated the round-trip, integration, and setup-helper tests to build and read the struct via a small list-view helper, so the existing expected-value assertions stay readable.
</content>
</entry>
<entry>
<title>test: Add boundary, error, and edge case tests</title>
<updated>2025-11-13T19:16:44+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-13T19:16:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=a064c5d7659d84393fd8f586bb1c7d18a5436b38'/>
<id>urn:sha1:a064c5d7659d84393fd8f586bb1c7d18a5436b38</id>
<content type='text'>
Added 66 comprehensive tests covering:
- Entry detection with extreme values and Unicode
- SM2 algorithm with boundary conditions
- Workflow error handling with malformed data
- Card types with complex content structures
</content>
</entry>
<entry>
<title>test: Add Phase 1 foundation tests for critical functions</title>
<updated>2025-11-13T17:36:06+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-13T17:36:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=cf182d001f66164232b8735bad43eb07121109c6'/>
<id>urn:sha1:cf182d001f66164232b8735bad43eb07121109c6</id>
<content type='text'>
- Add unit tests for org-drill-entry-p (14 tests)
- Add unit tests for org-drill-part-of-drill-entry-p (14 tests)
- Add unit tests for SM2 scheduling algorithm (23 tests)
- Add integration test for basic drill workflow (11 tests)
- Update Makefile to support test-*.el naming pattern
- Rename org-drill-test.el to test-org-drill.el for consistency

Total: 65 tests, all passing
</content>
</entry>
</feed>
