in prover/src/trace/tests.rs [91:119]
fn commit_trace_table() {
// build the trade and the domain
let trace_length = 8;
let air = MockAir::with_trace_length(trace_length);
let trace = build_fib_trace(trace_length * 2);
let domain = StarkDomain::new(&air);
// build extended trace commitment
let trace_polys = trace.into_matrix().interpolate_columns_into();
let trace_lde = trace_polys.evaluate_columns_over(&domain);
let trace_tree = trace_lde.commit_to_rows::<Blake3>();
let trace_comm = TraceCommitment::new(trace_lde, trace_tree, domain.trace_to_lde_blowup());
// build Merkle tree from trace rows
let mut hashed_states = Vec::new();
let mut trace_state = vec![BaseElement::ZERO; trace_comm.trace_width()];
#[allow(clippy::needless_range_loop)]
for i in 0..trace_comm.trace_len() {
for j in 0..trace_comm.trace_width() {
trace_state[j] = trace_comm.get_trace_cell(j, i);
}
let buf = Blake3::hash_elements(&trace_state);
hashed_states.push(buf);
}
let expected_tree = MerkleTree::<Blake3>::new(hashed_states).unwrap();
// compare the result
assert_eq!(*expected_tree.root(), trace_comm.root())
}