fn commit_trace_table()

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())
}