nx_flavor_integrate_test.nx source
↩ module page · 39 lines · 2010 B
1// nx_flavor_integrate_test.nx -- smoke for nx_flavor_integrate (T2).
2//
3// Proves multimodal flavor + the MEASURED EXCEED over a 6-axis score:
4// - 10 dimensions > the baseline's 6 (1)
5// - aroma out-weighs an equal unit of taste (olfaction dominance) (2)
6// - total intensity is monotone in aroma (3)
7// - trigeminal heat is a real flavor channel, not a taste (4)
8// - ODOR-INDUCED sweetness enhancement: congruent aroma raises perceived
9// sweet with no extra sugar (5-6), monotone (7)
10// Exit code = failed assertion number; 0 = all pass.
11
12import "nx_syscalls.nx"
13import "nx_flavor_integrate.nx"
14
15func main() -> i64 {
16 // --- dimensionality exceeds the 6-axis baseline ---
17 if nx_flavor_ndim() <= 6 { return 1 }
18
19 // --- olfaction dominance: a unit of aroma out-weighs a unit of taste ---
20 let fv_aroma: *NxFlavorVector = nx_flavor_vector_new(0,0,0,0,0, 500, 0,0,0,0)
21 let fv_sweet: *NxFlavorVector = nx_flavor_vector_new(500,0,0,0,0, 0, 0,0,0,0)
22 if nx_flavor_total_intensity(fv_aroma) <= nx_flavor_total_intensity(fv_sweet) { return 2 }
23
24 // --- total intensity monotone in aroma ---
25 let fv_a2: *NxFlavorVector = nx_flavor_vector_new(0,0,0,0,0, 800, 0,0,0,0)
26 if nx_flavor_total_intensity(fv_a2) <= nx_flavor_total_intensity(fv_aroma) { return 3 }
27
28 // --- trigeminal heat is a distinct flavor channel (adds to intensity) ---
29 let fv_base: *NxFlavorVector = nx_flavor_vector_new(300,0,0,0,0, 0, 0,0,0,0)
30 let fv_hot: *NxFlavorVector = nx_flavor_vector_new(300,0,0,0,0, 0, 400,0,0,0)
31 if nx_flavor_total_intensity(fv_hot) <= nx_flavor_total_intensity(fv_base) { return 4 }
32
33 // --- ODOR-INDUCED sweetness enhancement (cross-modal) ---
34 if nx_flavor_aroma_enhance_sweet(400, 0) != 400 { return 5 } // no aroma: unchanged
35 if nx_flavor_aroma_enhance_sweet(400, 500) <= 400 { return 6 } // congruent aroma: sweeter
36 if nx_flavor_aroma_enhance_sweet(400, 800) <= nx_flavor_aroma_enhance_sweet(400, 400) { return 7 }
37
38 return 0
39}