static void gt_seq_iterator_sequence_buffer_delete(GtSeqIterator *si) { GtSeqIteratorSequenceBuffer *seqit; if (!si) return; seqit = gt_seq_iterator_sequence_buffer_cast(si); gt_desc_buffer_delete(seqit->descptr); gt_sequence_buffer_delete(seqit->fb); GT_FREEARRAY(&seqit->sequencebuffer, GtUchar); seqit->currentread = seqit->maxread; }
int gt_desc_buffer_unit_test(GtError *err) { GtDescBuffer *s; static char *strs[] = { "foo", "bar", "baz"}; const char *ret; int had_err = 0; GtUword i, j; gt_error_check(err); s = gt_desc_buffer_new(); ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, "") == 0); gt_ensure(ret == s->buf); gt_ensure(gt_desc_buffer_length(s) == 0); gt_desc_buffer_delete(s); s = gt_desc_buffer_new(); for (i = 0; i < strlen(strs[0]); i++) { gt_desc_buffer_append_char(s, strs[0][i]); } gt_desc_buffer_finish(s); ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, strs[0]) == 0); gt_ensure(ret == s->buf); gt_ensure(gt_desc_buffer_length(s) == 4); gt_desc_buffer_delete(s); s = gt_desc_buffer_new(); for (j = 0; j < 2; j++) { for (i = 0; i < strlen(strs[j]); i++) { gt_desc_buffer_append_char(s, strs[j][i]); } gt_desc_buffer_finish(s); } ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, strs[0]) == 0); gt_ensure(ret == s->buf); ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, strs[1]) == 0); gt_ensure(ret == s->buf+4); gt_ensure(gt_desc_buffer_length(s) == 8); gt_desc_buffer_delete(s); s = gt_desc_buffer_new(); for (j = 0; j < 3; j++) { for (i = 0; i < strlen(strs[j]); i++) { gt_desc_buffer_append_char(s, strs[j][i]); } gt_desc_buffer_finish(s); } ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, strs[0]) == 0); gt_ensure(ret == s->buf); ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, strs[1]) == 0); gt_ensure(ret == s->buf+4); ret = gt_desc_buffer_get_next(s); gt_ensure(strcmp(ret, strs[2]) == 0); gt_ensure(ret == s->buf+8); gt_ensure(gt_desc_buffer_length(s) == 12); gt_desc_buffer_delete(s); return had_err; }