#include #include #include #include"Automaton.h" int main(void){ Automaton *a = create_automaton(); int e0 = add_state(a); int e1 = add_state(a); int e2 = add_state(a); assert(has_state(a, e0)); assert(has_state(a, e1)); assert(has_state(a, e2)); assert(! has_state(a, 42)); set_initial(a, e0); assert(get_initial(a) == e0); set_final(a, e2); assert(is_final(a, e2)); print_automaton(a); add_arc(a, e0, e1, 4); add_arc(a, e1, e1, EPSILON); add_arc(a, e1, e2, 6); assert(has_arc(a, e0, e1, 4)); assert(has_arc(a, e1, e1, EPSILON)); assert(has_arc(a, e1, e2, 6)); assert(! has_arc(a, e0, e1, 2)); assert(! has_arc(a, e0, e0, 1)); assert(! has_arc(a, e1, e2, 1)); assert(! has_arc(a, e2, e1, 3)); print_automaton(a); Automaton *b = copy_automaton(a); assert(has_state(b, e0)); assert(has_state(b, e1)); assert(has_state(b, e2)); assert(! has_state(b, 42)); assert(has_arc(b, e0, e1, 4)); assert(has_arc(b, e1, e1, EPSILON)); assert(has_arc(b, e1, e2, 6)); assert(! has_arc(b, e0, e1, 2)); assert(! has_arc(b, e0, e0, 1)); assert(! has_arc(b, e1, e2, 1)); assert(! has_arc(b, e2, e1, 3)); print_automaton(b); destroy_automaton(b); assert(has_state(a, e0)); assert(has_state(a, e1)); assert(has_state(a, e2)); assert(! has_state(a, 42)); assert(has_arc(a, e0, e1, 4)); assert(has_arc(a, e1, e1, EPSILON)); assert(has_arc(a, e1, e2, 6)); assert(! has_arc(a, e0, e1, 2)); assert(! has_arc(a, e0, e0, 1)); assert(! has_arc(a, e1, e2, 1)); assert(! has_arc(a, e2, e1, 3)); print_automaton(a); destroy_automaton(a); return 0; }