MCPcopy Index your code
hub / github.com/ciphermodelabs/ciphercore / stress_test

Function stress_test

ciphercore-base/src/optimizer/optimize.rs:59–88  ·  view source on GitHub ↗
(
    c1: Context,
    c2: Context,
    ip_evaluator1: T,
    ip_evaluator2: T,
)

Source from the content-addressed store, hash-verified

57
58#[doc(hidden)]
59pub fn stress_test<T: Evaluator>(
60 c1: Context,
61 c2: Context,
62 ip_evaluator1: T,
63 ip_evaluator2: T,
64) -> Result<()> {
65 let seed = b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F";
66 let mut prng = PRNG::new(Some(*seed)).unwrap();
67 let mut evaluator1 = ip_evaluator1;
68 evaluator1.preprocess(c1.clone()).unwrap();
69 let mut evaluator2 = ip_evaluator2;
70 evaluator2.preprocess(c2.clone()).unwrap();
71 for _ in 0..10 {
72 let mut inputs = vec![];
73 for node in c1.get_main_graph().unwrap().get_nodes() {
74 if let Operation::Input(t) = node.get_operation() {
75 inputs.push(prng.get_random_value(t).unwrap());
76 }
77 }
78 let result1 = evaluator1
79 .evaluate_graph(c1.get_main_graph().unwrap(), inputs.clone())
80 .unwrap();
81 let result2 = evaluator2
82 .evaluate_graph(c2.get_main_graph().unwrap(), inputs.clone())
83 .unwrap();
84 assert_eq!(result1, result2);
85 }
86
87 Ok(())
88}
89
90#[cfg(test)]
91mod tests {

Callers 1

test_simpleFunction · 0.85

Calls 8

preprocessMethod · 0.80
cloneMethod · 0.80
get_random_valueMethod · 0.80
evaluate_graphMethod · 0.80
get_nodesMethod · 0.45
get_main_graphMethod · 0.45
get_operationMethod · 0.45
pushMethod · 0.45

Tested by 1

test_simpleFunction · 0.68