int gt_diagram_unit_test(GtError *err) { int had_err = 0; GtGenomeNode *gn; GtDiagramTestShared sh; GtRange testrng = {100, 10000}; gt_error_check(err); gn = gt_feature_node_new_standard_gene(); sh.fi = gt_feature_index_memory_new(); sh.sty = gt_style_new(err); sh.err = err; sh.errstatus = 0; gt_feature_index_add_feature_node(sh.fi, gt_feature_node_cast(gn), err); gt_genome_node_delete(gn); sh.d = gt_diagram_new(sh.fi, "ctg123", &testrng, sh.sty, err); /* removed the multithreading test for now until it is fixed */ gt_diagram_unit_test_sketch_func(&sh); gt_ensure(sh.errstatus == 0); gt_style_delete(sh.sty); gt_diagram_delete(sh.d); gt_feature_index_delete(sh.fi); return had_err; }
int gt_feature_node_iterator_example(GT_UNUSED GtError *err) { GtFeatureNodeIterator *fni; GtFeatureNode *fn, *node; fn = (GtFeatureNode*) gt_feature_node_new_standard_gene(); /* an example genome node iterator use case */ fni = gt_feature_node_iterator_new(fn); while ((node = gt_feature_node_iterator_next(fni))) { /* do something with <node> */ } gt_feature_node_iterator_delete(fni); gt_genome_node_delete((GtGenomeNode*) fn); return 0; }