Skip to content
docs
Arxo ↗

nb-04 solutions — The permit fee

For LLMs5 sections
← Back to lessonChapter 04 / 25 · Beginner · Worked solution

Checkable against law test packs/examples/language-demo/calculations (9 checked, 9 passed). Identifiers and code as written.

1. TieredRate(12) — value and which row?

Section titled “1. TieredRate(12) — value and which row?”

Answer: 0.2, the second row (when months >= 12 => 0.2).

Only the second row’s guard holds (12 >= 24 is false, 12 >= 12 is true), so hit first takes it. otherwise is not reached because a guarded row matched.

2. PriorityRate(12) — value and which row?

Section titled “2. PriorityRate(12) — value and which row?”

Answer: 0.2, the first-listed row (when months >= 12 => 0.2).

Again only one guarded row matches (12 >= 24 is false), so row order and priority order agree here: the matched value 0.2 is the only candidate, and it is in the priority list.

3. PriorityRate(30) — value? What if row order decided?

Section titled “3. PriorityRate(30) — value? What if row order decided?”

Answer: 0.5. Under row order it would be 0.2.

Both guarded rows match for 30 months. The priority list 0.5, 0.2, 0.0 ranks the matched values, so 0.5 wins — confirmed by the test priority selects by list, not by rows, which expects value == 0.5. If selection followed table text order, the 0.2 row stands first and the answer would be 0.2. The test distinguishes the two semantics, and priority wins.

4. MatchedCount(18) — value, and what does it say?

Section titled “4. MatchedCount(18) — value, and what does it say?”

Answer: 2. Two rows matched.

MatchedCount uses hit collect aggregate count with guards months >= 24, months >= 12, months >= 6. For 18 months the last two hold, so the count is 2. It tells you the number of matching rows — the direct observation of “which (and how many) rows fired”, as opposed to hit first, which silently discards all but one.

Terminal
law test packs/examples/language-demo/calculations

Expected: итого: 9 проверено, 9 прошли, 0 не прошли, 0 не исполнены. The deciding tests are first takes the first matching row (TieredRate(30) == 0.5), count of matching rows (MatchedCount(18) == 2), and priority selects by list, not by rows (PriorityRate(30) == 0.5).

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.