Skip to content
Snippets Groups Projects
Commit 1c50d605 authored by dawehr's avatar dawehr
Browse files

Added another test for computation graph update rules.

parent c9b3190f
No related branches found
No related tags found
1 merge request!8Controller network
......@@ -160,6 +160,34 @@ int graph_test_update_rules() {
return nequal(result, 3);
}
/*
C1 --->| accum_b1 --->|
| Add --->
C2 --->| accum_b2 --->|
*/
int graph_test_update_propagation() {
struct computation_graph *graph = create_graph();
int cblock1 = graph_add_node_const(graph, "const1");
int cblock2 = graph_add_node_const(graph, "const2");
int accum_b1 = graph_add_node_accum(graph, "accumulator1");
int accum_b2 = graph_add_node_accum(graph, "accumulator2");
int add_b = graph_add_node_add(graph, "add");
graph_set_source(graph, accum_b1, ACCUM_IN, cblock1, CONST_VAL);
graph_set_source(graph, accum_b2, ACCUM_IN, cblock2, CONST_VAL);
graph_set_source(graph, add_b, ADD_SUMMAND1, accum_b1, ACCUMULATED);
graph_set_source(graph, add_b, ADD_SUMMAND2, accum_b2, ACCUMULATED);
graph_set_param_val(graph, cblock1, CONST_SET, 5);
graph_set_param_val(graph, cblock2, CONST_SET, 2);
int to_compute_for[] = {add_b};
graph_compute_nodes(graph, to_compute_for, 1);
double result1 = graph_get_output(graph, add_b, ADD_SUM);
graph_set_param_val(graph, cblock1, CONST_SET, 1);
graph_compute_nodes(graph, to_compute_for, 1);
double result2 = graph_get_output(graph, add_b, ADD_SUM);
return nequal(result1, 7) || nequal(result2, 8);
}
int main() {
int success = 0;
......@@ -171,5 +199,6 @@ int main() {
test(graph_test_reset_rules, "Tests that already connected blocks don't get reset");
test(graph_test_self_loop, "Tests that a self-loop computation terminates");
test(graph_test_update_rules, "Tests that nodes only update when their inputs change");
test(graph_test_update_propagation, "Tests that updates propagate only to their children");
test_summary();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment