<feed xmlns='http://www.w3.org/2005/Atom'>
<title>org-drill/tests/test-org-drill-cloze-and-scheduling-helpers.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-28T01:47:35+00:00</updated>
<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: cover the org-drill main entry and hypothetical-next-review-date dispatch</title>
<updated>2026-05-05T19:28:01+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T19:28:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=ac734cfd3208cb3d50c24ff1eb371c75fe71d59c'/>
<id>urn:sha1:ac734cfd3208cb3d50c24ff1eb371c75fe71d59c</id>
<content type='text'>
I added tests for the public `org-drill' command that mock
`org-drill-entries' so the orchestrator runs in batch: empty buffer →
'no pending' message, populated buffer → entry loop runs, cram=t flag
flips the session's cram-mode slot, resume-p skips entry collection.
I also extended the cloze + scheduling helpers file with sm2 and
simple8 coverage for `org-drill-hypothetical-next-review-date'.

Coverage moved from 89.0% to 89.8%.
</content>
</entry>
<entry>
<title>test: add tests for cloze regex, hypothetical scheduling, and entry stripping</title>
<updated>2026-05-05T09:07:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T09:07:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=47976dbe601215cbe0bfea92c246d23190821b07'/>
<id>urn:sha1:47976dbe601215cbe0bfea92c246d23190821b07</id>
<content type='text'>
15 ERT tests covering:

- org-drill--compute-cloze-regexp: match default and custom delimiters,
  hint separator, three-capture-group structure for fontification
- org-drill--compute-cloze-keywords: font-lock spec shape
- org-drill-hypothetical-next-review-date: virgin-card scheduling,
  quality-monotonic next-interval, DRILL_CARD_WEIGHT damping
- org-drill-hypothetical-next-review-dates: 6-element non-decreasing list
  driving the rating-prompt preview
- org-drill-strip-entry-data: scheduling-property cleanup, no-op on
  virgin entry
</content>
</entry>
</feed>
