code wiki / _hdl_build / nx_cross_genre_test.nx
nx_cross_genre_test.nx source
↩ module page · 38 lines · 3010 B
1// nx_cross_genre_test.nx -- prove the cross-genre fidelity scorecard distinguishes a real success
2// (content preserved + genre crossed) from the two failure modes (lost the subject / didn't cross).
3// content-neutral: the same logic applies to any genre pair. Exit 0 if all hold.
4// license_tier: ORIGINAL
5
6import "nx_cross_genre.nx"
7import "nx_syscalls.nx"
8
9func ct_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
10func ct_num(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m}; let t: *u8 = sys_mmap(28); var k: i64=0; if m==0 {t[0]=48;k=1}; while m>0 {t[k]=48+(m%10); m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(1, bb, k); return 0 }
11
12func main() -> i64 {
13 ct_puts("=== cross genres WITH fidelity (content preserved + genre crossed), content-neutral ===\n" as *u8)
14 let CF: i64 = 850 // content-fidelity floor (subject must be this preserved)
15 let SF: i64 = 800 // style floor (must reach this much of the target genre)
16
17 // case A -- a GOOD source->target reproduction: subject preserved, target genre reached, source faded
18 let a_content: i64 = 920; let a_target: i64 = 940; let a_residual: i64 = 110
19 // case B -- LOST CONTENT: looks like the target genre but the subject/pose was wrecked
20 let b_content: i64 = 600; let b_target: i64 = 950; let b_residual: i64 = 90
21 // case C -- WRONG STYLE: subject kept but it never left the source genre
22 let c_content: i64 = 950; let c_target: i64 = 430; let c_residual: i64 = 620
23
24 ct_puts(" A success : verdict=" as *u8); ct_num(cg_verdict(a_content,a_target,CF,SF)); ct_puts(" crossed+fidelity=" as *u8); ct_num(cg_crossed_with_fidelity(a_content,a_target,CF,SF)); ct_puts(" moved=" as *u8); ct_num(cg_genre_moved(a_target,a_residual,SF)); ct_puts(" quality=" as *u8); ct_num(cg_quality(a_content,a_target)); ct_puts("\n" as *u8)
25 ct_puts(" B lost : verdict=" as *u8); ct_num(cg_verdict(b_content,b_target,CF,SF)); ct_puts(" (1=LOST_CONTENT)\n" as *u8)
26 ct_puts(" C wrong : verdict=" as *u8); ct_num(cg_verdict(c_content,c_target,CF,SF)); ct_puts(" (2=WRONG_STYLE)\n" as *u8)
27
28 let r: *i64 = sys_mmap(8*8) as *i64
29 r[0] = 0; if cg_verdict(a_content,a_target,CF,SF) == CG_SUCCESS { r[0] = 1 }
30 r[1] = 0; if cg_verdict(b_content,b_target,CF,SF) == CG_LOST_CONTENT { r[1] = 1 }
31 r[2] = 0; if cg_verdict(c_content,c_target,CF,SF) == CG_WRONG_STYLE { r[2] = 1 }
32 r[3] = 0; if cg_crossed_with_fidelity(a_content,a_target,CF,SF) == 1 { if cg_genre_moved(a_target,a_residual,SF) == 1 { r[3] = 1 } }
33 var pass: i64 = 0; var i: i64 = 0
34 while i < 4 { pass = pass + r[i]; i = i + 1 }
35 ct_puts("----\n passed " as *u8); ct_num(pass); ct_puts("/4\n" as *u8)
36 if pass == 4 { ct_puts(" PROVEN: cross-genre fidelity is MEASURABLE -- success vs lost-subject vs didnt-cross, all distinguished.\n" as *u8); sys_exit(0); return 0 }
37 ct_puts(" FAIL\n" as *u8); sys_exit(1); return 1
38}