ocaml: phase 5.1 polygon_area.ml baseline (pentagon 2x area = 32)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s

Shoelace formula on a pentagon with integer vertices:

  pts = [(0,0); (4,0); (4,3); (2,5); (0,3)]

  2 * area = | Σ (x_i * y_{i+1} - x_{i+1} * y_i) |
           = | 0*0 - 4*0 + 4*3 - 4*0 + 4*5 - 2*3 + 2*3 - 0*5
                + 0*0 - 0*3 |
           = 32

Returns the doubled form (32) to stay integral.

Tests:
  - let (x1, y1) = arr.(i) in   -- tuple destructure from array
  - arr.((i + 1) mod n)         -- modular wrap-around index
  - if a < 0 then - a else a    -- prefix - negation

162 baseline programs total.
This commit is contained in:
2026-05-10 22:47:22 +00:00
parent c69a7694c8
commit 62712accdd
3 changed files with 27 additions and 0 deletions

View File

@@ -407,6 +407,15 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-10 Phase 5.1 — polygon_area.ml baseline (shoelace formula
on pentagon, returns 2× area = 32). Vertices (0,0), (4,0), (4,3),
(2,5), (0,3); shoelace sum |Σ(x_i·y_{i+1} x_{i+1}·y_i)| = 32 so
the area is 16, and we return the doubled form to stay integral.
Tests `let (x1, y1) = arr.(i) in` tuple destructuring from array
access (previously suspected broken in bfs_grid but works here —
the iter-242 bug was actually `&&` short-circuit, not destructure),
modular wrap-around `arr.((i+1) mod n)`, prefix-`-` negation.
162 baseline programs total.
- 2026-05-10 Phase 5.1 — min_cost_path.ml baseline (min-cost path
through 4×4 cost grid, top-left to bottom-right with moves
right/down only, optimal = 12). Standard 2D DP: dp[i][j] = min