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}