/* See LICENSE file for copyright and license details. */ #include "common.h" int main(void) { LIBAUTOMATA_MP_AUTOMATON *a1, *a2; const char *r; EXPECT((a1 = libautomata_compile_mp_automaton(MEM("es"), 1))); EXPECT((a2 = libautomata_clone_mp_automaton(a1))); r = libautomata_execute_mp_automaton(MEM("test"), a1); EXPECT(r); EXPECT(!strcmp(r, "t")); r = libautomata_execute_mp_automaton(MEM("test"), a1); EXPECT(r); EXPECT(!strcmp(r, "t")); libautomata_reset_mp_automaton(a1); r = libautomata_execute_mp_automaton(MEM("test"), a1); EXPECT(r); EXPECT(!strcmp(r, "t")); r = libautomata_execute_mp_automaton(MEM("test"), a2); EXPECT(r); EXPECT(!strcmp(r, "t")); r = libautomata_execute_mp_automaton(MEM("te"), a1); EXPECT(!r); r = libautomata_execute_mp_automaton(MEM("sting"), a1); EXPECT(r); EXPECT(!strcmp(r, "ting")); r = libautomata_execute_mp_automaton(MEM("te"), a1); EXPECT(!r); libautomata_reset_mp_automaton(a1); r = libautomata_execute_mp_automaton(MEM("sting"), a1); EXPECT(!r); free(a1); free(a2); EXPECT((a1 = libautomata_compile_mp_automaton(MEM("nano"), 1))); r = libautomata_execute_mp_automaton(MEM("searching for a nanostring"), a1); EXPECT(r); EXPECT(!strcmp(r, "string")); free(a1); return 0; }