cycle: one root, once — a verse that repeats a word (tablet 32a)

Reading roots from the verse (tablet 32) met a verse that carries אור
twice: the real engine answers per word and Bereishit 1:3 came back
with א-ו-ר listed twice, each already carrying positions 4 and 6.
uniq_by shoresh after normalization. Found by running the built image
against the real shoresh-engine binary, not by the suite.

460 tests, 0 failures on seeds 0 42 99.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Scott KarpandClaude Fable 5.1 committed 2026-10-04 16:54:38 +00:00
1 parent a48c22c5a3
commit 83fa5ac46b
2 files changed
+17 -1

No files matched your search

@@ -156,7 +156,13 @@ defmodule VavPipeline.BereishitCycle do
end
Map.merge(state, %{
roots_activated: Enum.map(raw_roots, &normalize_root(&1, context, :engine)),
# A verse may carry the same word twice (אור in Bereishit 1:3);
# the engine answers per word, and each normalized root already
# lists every position. One root, once.
roots_activated:
raw_roots
|> Enum.map(&normalize_root(&1, context, :engine))
|> Enum.uniq_by(& &1.shoresh),
parse_tree: get_result(engine_result, :parse_tree, "parse_tree", nil),
dual_readings: get_result(engine_result, :dual_readings, "dual_readings", []),
teamim_parse: context.teamim_marks,