nx_lib_e2e_test.nx source
↩ module page · 85 lines · 4027 B
1// nx_lib_e2e_test.nx -- END-TO-END gate for the sovereign library read path.
2// Ingests REAL works -> nx_lib_store -> serves them as HTTP JSON via the
3// sovereign router. Proves the WHOLE .nx read path on real data, no socket
4// needed, no python/sqlite/shell. Exit = failed assertion #.
5import "nx_syscalls.nx"
6import "nx_lib_ingest.nx"
7import "nx_lib_ingest_tsv.nx" // nx_lib_ingest_buf
8import "nx_lib_http.nx"
9
10func e2e_has(hay: *u8, hayn: i64, needle: *u8) -> i64 {
11 let nn: i64 = ls_strlen(needle)
12 if nn == 0 { return 1 }
13 if hayn < nn { return 0 }
14 let last: i64 = hayn - nn
15 var i: i64 = 0
16 while i <= last {
17 var j: i64 = 0
18 var st: i64 = 0
19 while st == 0 {
20 if j >= nn { st = 2 }
21 if st == 0 { if hay[i+j] != needle[j] { st = 1 } if st == 0 { j = j + 1 } }
22 }
23 if st == 2 { return 1 }
24 i = i + 1
25 }
26 return 0
27}
28
29func main() -> i64 {
30 // REAL works (actual papers), TSV: work_hk<TAB>title<TAB>doi<TAB>published<TAB>license
31 let tsv: *u8 = "W_ATTN\tAttention Is All You Need\t10.48550/arXiv.1706.03762\t2017\tarxiv-perpetual\nW_ALPHAFOLD\tHighly accurate protein structure prediction with AlphaFold\t10.1038/s41586-021-03819-2\t2021\tcc-by\nW_CRISPR\tA Programmable Dual-RNA-Guided DNA Endonuclease\t10.1126/science.1225829\t2012\tcc-by\n" as *u8
32
33 let cnt: i64 = nx_lib_ingest_buf(tsv, ls_strlen(tsv))
34 if cnt != 3 { return 1 }
35 nx_lib_index_build() // build the O(1) inverted index that /api/search now uses
36
37 let out: *u8 = sys_mmap(1200000)
38
39 // serve a real work over the sovereign HTTP router -> real JSON
40 let p: *u8 = "/api/work/W_ATTN" as *u8
41 let rn: i64 = lhd_response(p, ls_strlen(p), out)
42 if e2e_has(out, rn, "HTTP/1.1 200 OK" as *u8) != 1 { return 2 }
43 if e2e_has(out, rn, "\"title\":\"Attention Is All You Need\"" as *u8) != 1 { return 3 }
44 if e2e_has(out, rn, "\"doi\":\"10.48550/arXiv.1706.03762\"" as *u8) != 1 { return 4 }
45 if e2e_has(out, rn, "\"published\":\"2017\"" as *u8) != 1 { return 5 }
46
47 // second real work
48 let p2: *u8 = "/api/work/W_ALPHAFOLD" as *u8
49 let rn2: i64 = lhd_response(p2, ls_strlen(p2), out)
50 if e2e_has(out, rn2, "AlphaFold" as *u8) != 1 { return 6 }
51
52 // the catalog list serves all three hks
53 let pl: *u8 = "/api/works" as *u8
54 let rnl: i64 = lhd_response(pl, ls_strlen(pl), out)
55 if e2e_has(out, rnl, "\"W_ATTN\"" as *u8) != 1 { return 7 }
56 if e2e_has(out, rnl, "\"W_ALPHAFOLD\"" as *u8) != 1 { return 8 }
57 if e2e_has(out, rnl, "\"W_CRISPR\"" as *u8) != 1 { return 9 }
58
59 // search route over HTTP: GET /api/search?q=protein -> AlphaFold
60 let ps: *u8 = "/api/search?q=protein" as *u8
61 let rns: i64 = lhd_response(ps, ls_strlen(ps), out)
62 if e2e_has(out, rns, "HTTP/1.1 200 OK" as *u8) != 1 { return 10 }
63 if e2e_has(out, rns, "\"W_ALPHAFOLD\"" as *u8) != 1 { return 11 }
64 if e2e_has(out, rns, "W_CRISPR" as *u8) == 1 { return 12 }
65 // multi-term via '+' -> AND
66 let ps2: *u8 = "/api/search?q=protein+structure" as *u8
67 let rns2: i64 = lhd_response(ps2, ls_strlen(ps2), out)
68 if e2e_has(out, rns2, "\"W_ALPHAFOLD\"" as *u8) != 1 { return 13 }
69
70 // sovereign zero-JS HTML frontend routes
71 let ph: *u8 = "/" as *u8
72 let rnh: i64 = lhd_response(ph, ls_strlen(ph), out)
73 if e2e_has(out, rnh, "text/html" as *u8) != 1 { return 14 }
74 if e2e_has(out, rnh, "Nishi Library" as *u8) != 1 { return 15 }
75 let pw: *u8 = "/work/W_ATTN" as *u8
76 let rnw: i64 = lhd_response(pw, ls_strlen(pw), out)
77 if e2e_has(out, rnw, "Attention Is All You Need" as *u8) != 1 { return 16 }
78 let phq: *u8 = "/?q=protein" as *u8
79 let rnhq: i64 = lhd_response(phq, ls_strlen(phq), out)
80 if e2e_has(out, rnhq, "AlphaFold" as *u8) != 1 { return 17 }
81
82 let msg: *u8 = "nx_lib_e2e: 17/17 END-TO-END PASS -- ingest -> store -> JSON API (get/list/search) + zero-JS HTML frontend, all .nx (no python/sqlite/fts5/shell)\n" as *u8
83 sys_write(1, msg, ls_strlen(msg))
84 return 0
85}