MCPcopy Create free account
hub / github.com/BitVM/BitVM / test_query_table

Function test_query_table

bitvm/src/bn254/msm.rs:348–387  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

346
347 #[test]
348 fn test_query_table() {
349 let mut prng = ChaCha20Rng::seed_from_u64(1);
350 let q = ark_bn254::G1Affine::rand(&mut prng);
351 let window = WINDOW_G1_MSM as usize;
352 let tables = generate_lookup_tables(q, window);
353 let num_tables = tables.1.len();
354 let table_index = u32::rand(&mut prng) % num_tables as u32;
355
356 let fq = ark_bn254::Fr::rand(&mut prng);
357
358 let (value, slice_scr) = get_query_for_table_index(fq, window, table_index as usize);
359
360 let selected_table = (
361 tables.0[table_index as usize].clone(),
362 tables.1[table_index as usize].clone(),
363 );
364 let (row, row_scr) = query_table(selected_table, (value as usize, slice_scr));
365
366 let tap_len = row_scr.len();
367 let scr = script! {
368 {Fr::push(fq)}
369 {row_scr}
370 {G1Affine::push(row)}
371 {G1Affine::equalverify()}
372 OP_TRUE
373 };
374
375 let res = execute_script(scr);
376 if res.final_stack.len() > 1 {
377 for i in 0..res.final_stack.len() {
378 println!("{i:} {:?}", res.final_stack.get(i));
379 }
380 }
381 assert!(res.success);
382 assert!(res.final_stack.len() == 1);
383 println!(
384 "tap len {} stack len {}",
385 tap_len, res.stats.max_nb_stack_items
386 );
387 }
388
389 #[test]
390 fn test_hinted_msm_with_constant_bases_affine_script() {

Callers

nothing calls this directly

Calls 6

generate_lookup_tablesFunction · 0.85
query_tableFunction · 0.85
execute_scriptFunction · 0.85
lenMethod · 0.80
cloneMethod · 0.80

Tested by

no test coverage detected