code wiki / (root) / nx_fin_mgmt_grade_gate.nx

nx_fin_mgmt_grade_gate.nx source

↩ module page · 68 lines · 3582 B

1// nx_fin_mgmt_grade_gate.nx -- proves the management-stewardship grader ("handicap the team"): each of the 8 2// governance tests fires correctly, the composite score maps to the right letter grade, and the boundaries 3// hold. Exits 0 iff ALL pass. license_tier: ORIGINAL 4import "nx_syscalls.nx" 5import "nx_fin_mgmt_grade.nx" 6 7func g_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 8func g_putn(v: i64) -> i64 { 9 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 } 10 var m: i64 = v; if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 11 let d: *u8 = sys_mmap(24); var k: i64 = 0 12 while m > 0 { d[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 13 var j: i64 = k - 1 14 while j >= 0 { sys_write(1, ((d as i64)+j) as *u8, 1); j = j - 1 } 15 return 0 16} 17func chk(name: *u8, got: i64, want: i64, st: *i64) -> i64 { 18 if got == want { st[0] = st[0] + 1; g_puts(" PASS "); g_puts(name); g_puts("\n") } 19 else { st[1] = st[1] + 1; g_puts(" FAIL "); g_puts(name); g_puts(" got="); g_putn(got); g_puts(" want="); g_putn(want); g_puts("\n") } 20 return 0 21} 22 23func main() -> i64 { 24 let st: *i64 = sys_mmap(16) as *i64 25 st[0] = 0; st[1] = 0 26 27 // EXCELLENT STEWARDS: insiders buying, ROCE 20, ROIC 18 > WACC 9, pay 50x, board 80% indep, say 95%, clean 28 // all 8 tests fire -> score 8 -> A 29 let se: i64 = mg_score(1000, 20, 18, 9, 50, 80, 95, 0) 30 g_puts(" [info] excellent score = "); g_putn(se); g_puts("\n") 31 chk("excellent stewards -> score 8", se, 8, st) 32 chk("excellent stewards -> grade A", mg_grade(se), MG_A, st) 33 34 // VALUE-DESTROYERS: insiders selling, ROCE 5, ROIC 6 < WACC 10, pay 500x, board 30%, say 40%, 2 restatements 35 // no test fires -> score 0 -> F 36 let sf: i64 = mg_score(0 - 500, 5, 6, 10, 500, 30, 40, 2) 37 g_puts(" [info] destroyer score = "); g_putn(sf); g_puts("\n") 38 chk("value-destroyers -> score 0", sf, 0, st) 39 chk("value-destroyers -> grade F", mg_grade(sf), MG_F, st) 40 41 // MIXED: insiders +1 (T1), ROCE 15 (T2), ROIC 10 == WACC 10 (T3 no, T8 no), pay 250 (T4 no), board 40 (T5 no), 42 // say 60 (T6), clean (T7) -> T1,T2,T6,T7 = score 4 -> C 43 let sm: i64 = mg_score(1, 15, 10, 10, 250, 40, 60, 0) 44 g_puts(" [info] mixed score = "); g_putn(sm); g_puts("\n") 45 chk("mixed management -> score 4", sm, 4, st) 46 chk("mixed management -> grade C", mg_grade(sm), MG_C, st) 47 48 // INDIVIDUAL TESTS isolate (flip one signal at a time off the excellent baseline) 49 chk("T1: insider SELLING drops a point", mg_score(0 - 1, 20, 18, 9, 50, 80, 95, 0), 7, st) 50 chk("T3+T8: ROIC<=WACC drops TWO (value + spread)", mg_score(1000, 20, 8, 9, 50, 80, 95, 0), 6, st) 51 chk("T4: excessive pay drops a point", mg_score(1000, 20, 18, 9, 999, 80, 95, 0), 7, st) 52 chk("T7: a restatement drops a point", mg_score(1000, 20, 18, 9, 50, 80, 95, 1), 7, st) 53 54 // GRADE BOUNDARIES (score -> letter) 55 chk("score 7 -> A", mg_grade(7), MG_A, st) 56 chk("score 6 -> B", mg_grade(6), MG_B, st) 57 chk("score 5 -> B", mg_grade(5), MG_B, st) 58 chk("score 4 -> C", mg_grade(4), MG_C, st) 59 chk("score 3 -> C", mg_grade(3), MG_C, st) 60 chk("score 2 -> D", mg_grade(2), MG_D, st) 61 chk("score 1 -> D", mg_grade(1), MG_D, st) 62 chk("score 0 -> F", mg_grade(0), MG_F, st) 63 64 g_puts("nx_fin_mgmt_grade_gate: PASS="); g_putn(st[0]); g_puts(" FAIL="); g_putn(st[1]); g_puts("\n") 65 if st[1] == 0 { g_puts("MARKETS R-MKT5 nx_fin_mgmt_grade: GREEN\n"); return 0 } 66 g_puts("MARKETS R-MKT5 nx_fin_mgmt_grade: RED\n") 67 return 1 68}