summaryrefslogtreecommitdiff
path: root/tests/test-lorem-optimum-benchmark.el
Commit message (Collapse)AuthorAgeFilesLines
* test(lorem-optimum): tag benchmarks :perf and assert on scaling ratiosCraig Jennings2026-05-121-75/+71
| | | | | | The benchmark suite carried no tag, so `make test' ran it every time, and three of its tests asserted absolute wall-clock times (`(should (< time 5000.0))' and friends). Those numbers hold on my laptop and break on a slower box. Every benchmark is now `:perf'-tagged so the default test run skips it. The three absolute learn thresholds collapse into one `benchmark-learn-scaling' test: it times 1K, 10K, and 100K learns and requires each 10x jump in input to cost under 40x the time. Linear scaling lands near 10x, and the 40x ceiling tolerates GC pauses and slow hardware while still catching an O(N^2) regression. The rest drop their absolute `should's and stay as timing reports for `make benchmark'.
* perf(lorem-optimum): speed up the Markov generation pathCraig Jennings2026-05-111-11/+4
| | | | `cj/markov-join-tokens' collects tokens in a list and `mapconcat's once instead of repeated string concatenation. `cj/markov-generate' uses `push'/`nreverse' instead of repeated `append'. The Markov keys are cached as a vector so random key selection is O(1). Re-enabled the benchmark tests (the `:slow' tags were stale) and added a `cj/lipsum-title' test after byte-compilation flagged a malformed form there. `assets/liber-primus.txt' is left as-is (36 KB / 5,374 words, small enough not to need trimming). 100K-word learning now measures about 196 ms.
* Revert "checking in modified/removed tests and other misc changes"Craig Jennings2025-11-141-0/+223
| | | | This reverts commit 1218bae708a6755e3628f15fef58e6806ac81039.
* checking in modified/removed tests and other misc changesCraig Jennings2025-11-141-223/+0
|
* perf: Merge performance branch - org-agenda cache, tests, and inbox zeroCraig Jennings2025-11-121-11/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This squash merge combines 4 commits from the performance branch: ## Performance Improvements - **org-agenda cache**: Cache org-agenda file list to reduce rebuild time - Eliminates redundant file system scans on each agenda view - Added tests for cache invalidation and updates - **org-refile cache**: Optimize org-refile target building (15-20s → instant) - Cache eliminates bottleneck when capturing tasks ## Test Suite Improvements - Fixed all 18 failing tests → 0 failures (107 test files passing) - Deleted 9 orphaned test files (filesystem lib, dwim-shell-security, org-gcal-mock) - Fixed missing dependencies (cj/custom-keymap, user-constants) - Fixed duplicate test definitions and wrong variable names - Adjusted benchmark timing thresholds for environment variance - Added comprehensive tests for org-agenda cache functionality ## Documentation & Organization - **todo.org recovery**: Restored 1,176 lines lost in truncation - Recovered Methods 4, 5, 6 + Resolved + Inbox sections - Removed 3 duplicate TODO entries - **Inbox zero**: Triaged 12 inbox items → 0 items - Completed: 3 tasks marked DONE (tests, transcription) - Relocated: 4 tasks to appropriate V2MOM Methods - Deleted: 4 duplicates/vague tasks - Merged: 1 task as subtask ## Files Changed - 58 files changed, 29,316 insertions(+), 2,104 deletions(-) - Tests: All 107 test files passing - Codebase: Cleaner, better organized, fully tested
* test: Add slow tag to benchmarks taking too longCraig Jennings2025-11-091-2/+8
| | | | | | | Disabled benchmarks for learning and tokenizing 10,000 words due to prolonged execution times (minutes instead of seconds). Added `:slow` tag to indicate need for performance optimization before re-enabling.
* feat:text-generation: improve and rename lorem generatorCraig Jennings2025-10-261-0/+227
Rename `lorem-generator.el` to `lorem-optimum.el` for fun. Enhance text tokenization, Markov chain learning, and text generation functions. Introduce new configuration variables for training files and improve efficiency with vectorized access. Add comprehensive benchmarks and unit tests under `tests/`. This improves performance and lays groundwork for further extensions.