+static void test2(void)
+{
+ generator_t(int) state2 = gen2(100);
+ int *ret;
+
+ ok1((ret = generator_next(state2)) != NULL);
+ ok1(*ret == 101);
+ ok1((ret = generator_next(state2)) != NULL);
+ ok1(*ret == 103);
+ ok1((ret = generator_next(state2)) != NULL);
+ ok1(*ret == 117);
+ ok1((ret = generator_next(state2)) == NULL);
+
+ generator_free(state2);
+}
+
+static void test3(void)
+{
+ int i;
+
+ for (i = 0; i < 4; i++) {
+ generator_t(const char *) state3 = gen3("test", i);
+ const char *s;
+ int j;
+
+ for (j = 0; j < i; j++) {
+ ok1(generator_next_val(s, state3));
+ ok1(streq(s, "test"));
+ }
+ ok1(!generator_next_val(s, state3));
+ generator_free(state3);
+ }
+}
+