Live after the second commit (vav :046010f0): a monetary case naming bereishit 1:1 convened three judges and came back "accepted" — the interpret seat said "resolved (5 roots, 0 verses)" with reading(mitzvot_count(0),verse_count(0),grounded_in([],[])), the other two seats said teiku, and one accept beat two abstentions (the reply showed majority 1, minority 2). Three defects the tests could not see: - The engine names roots by letter (bet_resh_aleph; json_bridge reads "bet-resh-aleph") and the pipeline sent it the Hebrew, which its verse facts never match. BereishitCycle.engine_root_name/1 builds the engine's name from the Shoresh Engine's letter names or, for the L1 fallback, from the Hebrew with finals folded; the router sends that. (The cycle's own Talmudic routing still sends the Hebrew — recorded, not changed here: it alters /peah/ask and needs its own verification.) - judge.erl: "resolved" with no verse and no mitzvah is a reading coupled to nothing (avodah_zarah.pl Form 2); the judge abstains and says "resolved on an empty trace; nothing to stand on". - panel.erl: the majority is the verdict with the most votes, abstentions included; an abstaining plurality or an accept/reject tie is teiku. EUnit 57/0 (plurality, tie, empty trace). Elixir 632/0 (engine_root_name from names, from Hebrew, nil on nothing; the no-engine case is an abstaining majority of one, teiku). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
28 lines
1.1 KiB
Elixir
28 lines
1.1 KiB
Elixir
defmodule VavPipeline.Tablet55EngineRootNameTest do
|
|
@moduledoc """
|
|
Tablet 55: the Talmudic Engine names roots by letter (bet_resh_aleph,
|
|
read from "bet-resh-aleph"). The pipeline was sending it the Hebrew,
|
|
which its verse facts never match — roots in, no verses out, and a
|
|
"resolved" reading over the emptiness.
|
|
"""
|
|
use ExUnit.Case, async: true
|
|
|
|
alias VavPipeline.BereishitCycle
|
|
|
|
test "from the Shoresh Engine's letter names" do
|
|
assert BereishitCycle.engine_root_name(%{shoresh: "ברא", shoresh_letters: ["bet", "resh", "aleph"]}) ==
|
|
"bet-resh-aleph"
|
|
end
|
|
|
|
test "from the Hebrew alone (the L1 fallback), finals folded" do
|
|
assert BereishitCycle.engine_root_name(%{shoresh: "דבר", shoresh_letters: []}) == "dalet-bet-resh"
|
|
assert BereishitCycle.engine_root_name(%{shoresh: "מלך"}) == "mem-lamed-kaf"
|
|
end
|
|
|
|
test "nothing nameable → nil, never a Hebrew string the engine cannot read" do
|
|
assert BereishitCycle.engine_root_name(%{shoresh: nil}) == nil
|
|
assert BereishitCycle.engine_root_name(%{shoresh: "x1"}) == nil
|
|
assert BereishitCycle.engine_root_name(%{}) == nil
|
|
end
|
|
end
|