END_TEST START_TEST(gt_test_loosing_alignments) { // test no maps no mmaps fail_unless(gt_input_map_parse_template( "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16",source)==0); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line, "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16\n" )); gt_string_clear(string); // try parsing the alignment fail_unless(gt_input_map_parse_alignment( "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16",alignment)==0); gt_output_map_sprint_alignment(string, alignment, output_attributes); // convert to string line = gt_string_get_string(string); fail_unless(gt_streq(line, "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16\n" )); gt_string_clear(string); gt_alignment *alignment_dst; alignment_dst = gt_alignment_copy(alignment,false); GT_ALIGNMENT_ITERATE(alignment,map) { gt_alignment_insert_map(alignment_dst,gt_map_copy(map)); }
END_TEST START_TEST(gt_test_template_copy) { // test no maps no mmaps fail_unless(gt_input_map_parse_template( "ID\tACGT\t####\t1\tchr1:-:20:4",source)==0); gt_template* copy = gt_template_copy(source, false, false); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check char * line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t0\t-\n")); gt_template_delete(copy); // test maps no mmaps gt_string_clear(string); copy = gt_template_copy(source, true, false); string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t1\tchr1:-:20:4\n")); gt_template_delete(copy); // test maps no mmaps with multi map string fail_unless(gt_input_map_parse_template( "ID\tACGT\t####\t2\tchr1:-:20:4,chr2:-:40:4",source)==0); gt_string_clear(string); copy = gt_template_copy(source, true, false); string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t2\tchr1:-:20:4,chr2:-:40:4\n")); gt_template_delete(copy); // test maps and mmaps gt_string_clear(string); copy = gt_template_copy(source, true, true); string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t2\tchr1:-:20:4,chr2:-:40:4\n")); gt_template_delete(copy); }
GT_INLINE void gt_options_fprint_menu( FILE* const stream,const gt_option* const options,char* groups[], const bool print_description,const bool print_inactive) { const uint64_t num_options = gt_options_get_num_options(options); int64_t i, last_group = -1; for (i=0;i<num_options;++i) { if (!print_inactive && !options[i].active) continue; // Print group (if not printed yet) if (last_group!=options[i].group_id) { fprintf(stream," [%s]\n",groups[options[i].group_id]); last_group=options[i].group_id; } // Print Long Option fprintf(stream," --%s",options[i].long_option); // Print Short Option (if it has) const char short_option = options[i].option_id; if (options[i].option_id<128 && gt_is_alphanumeric(short_option)) { fprintf(stream,"|-%c",short_option); } // Print extra command line syntax info fprintf(stream," %s\n",options[i].command_info); // Print description (@print_description) if (print_description && !gt_streq(options[i].description,"")) { fprintf(stream,"%s",options[i].description); } } }
END_TEST START_TEST(gt_test_template_merge_inconsistent) { fail_unless(gt_input_map_parse_template( "ID/1\t" "GAGAGAACAGGCCTCTGAGCCCAAGCCAAGCCATCGCATCCCCTGTGACTTGCCCGTATATATGCCCAGATGGCCTGAAGTAACTGAAGAATCACAAAAGA\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:1:4+27:46:45:34:12:16:3:0:1\t" "chr7:+:24435865:1T>5-46A8C38,chr2:+:64479547:>1-1T>1-1T>1-94,chr4:+:16999371:1T>5-35>2-9A8C38,chr9:+:90025610:1T>5-28A17A8C38,chr11:-:130623749:2>1-1T1T46A2>2-43",source)==0); fail_unless(gt_input_map_parse_template( "ID/1\t" "GAGAGAACAGGCCTCTGAGCCCAAGCCAAGCCATCGCATCCCCTGTGACTTGCCCGTATATATGCCCAGATGGCCTGAAGTAACTGAAGAATCACAAAAGA\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:1:0:0:0:0:1:3\t" "chr2:+:64479108:10>436*91,chr2:+:64479544:TTC1TGT94,chr13:+:91496959:1GA1TGT27T18A47,chr2:+:216792393:1GA1TGT46A8C38,chr2:+:64478959:AG1T1G1TT1>585*91",target)==0); // merge into source gt_template_recalculate_counters(source); gt_template_merge_template_mmaps(source,target); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char* line = gt_string_get_string(string); fail_unless(gt_streq(line, "ID/1\t" "GAGAGAACAGGCCTCTGAGCCCAAGCCAAGCCATCGCATCCCCTGTGACTTGCCCGTATATATGCCCAGATGGCCTGAAGTAACTGAAGAATCACAAAAGA\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:1:0:0:1:4+1:3\t" "chr2:+:64479108:10>436*91,chr7:+:24435865:1T>5-46A8C38,chr2:+:64479547:(1)1T>1-1T>1-94," "chr4:+:16999371:1T>5-35>2-9A8C38,chr9:+:90025610:1T>5-28A17A8C38,chr11:-:130623749:2>1-1T1T46A2>2-43," "chr2:+:64479544:TTC1TGT94,chr13:+:91496959:1GA1TGT27T18A47,chr2:+:216792393:1GA1TGT46A8C38," "chr2:+:64478959:AG1T1G1TT1>585*91\n")); }
END_TEST START_TEST(gt_test_template_merge_error) { fail_unless(gt_input_map_parse_template( "HISEQ8_0071:3:1101:19107:2010#TGACCA/1\t" "NGTCATGAGTGCAAAATGCAAATGCAAGTTTGGCCAGAAGTCCGGTCACCATCCAGGGGAGACTCCACCTCTCATCACCCCAGGCTCAGCCCAAAGCTGAT\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:1\t" "chr19:+:35613736:C7>78*37>316*38>132*18",source)==0); fail_unless(gt_input_map_parse_template( "HISEQ8_0071:3:1101:19107:2010#TGACCA/1\t" "NGTCATGAGTGCAAAATGCAAATGCAAGTTTGGCCAGAAGTCCGGTCACCATCCAGGGGAGACTCCACCTCTCATCACCCCAGGCTCAGCCCAAAGCTGAT\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:1+0:1\t" "chr19:+:35613741:(5)3>78*37>316*36(20),chr19:+:35613819:(5)CAG37>316*36(20)", target)==0); // merge into source gt_template_merge_template_mmaps(source,target); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line, "HISEQ8_0071:3:1101:19107:2010#TGACCA/1\t" "NGTCATGAGTGCAAAATGCAAATGCAAGTTTGGCCAGAAGTCCGGTCACCATCCAGGGGAGACTCCACCTCTCATCACCCCAGGCTCAGCCCAAAGCTGAT\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:2+0:1\t" "chr19:+:35613736:C7>78*37>316*38>132*18,chr19:+:35613741:(5)3>78*37>316*36(20),chr19:+:35613819:(5)CAG37>316*36(20)\n")); }
GT_INLINE void gt_options_fprint_json_menu( FILE* const stream,const gt_option* const options,char* groups[], const bool print_description,const bool print_inactive) { const uint64_t num_options = gt_options_get_num_options(options); int64_t i; bool at_least_one_printed = false; fprintf(stream,"{ \n"); // Begin JSON record fprintf(stream,"\"numOptions\": %"PRIu64",\n",num_options); fprintf(stream,"\"options\": [ \n"); for (i=0;i<num_options;++i) { if (!print_inactive && !options[i].active) continue; if(at_least_one_printed){ fprintf(stream,",\n"); } at_least_one_printed = true; fprintf(stream,"\t{ \n"); // Print ID/Short Option fprintf(stream,"\t \"ID\": %d,\n",options[i].option_id); // Print Long Option fprintf(stream,"\t \"longOption\": \"%s\",\n",options[i].long_option); // Print Short Option const char short_option = options[i].option_id; if (options[i].option_id<128 && gt_is_alphanumeric(short_option)) { fprintf(stream,"\t \"shortOption\": \"%c\",\n",short_option); } else { fprintf(stream,"\t \"shortOption\": null,\n"); } // Group fprintf(stream,"\t \"group\": \"%s\",\n",groups[options[i].group_id]); // Option Type switch (options[i].option_type) { case GT_OPT_NO_ARGUMENT: fprintf(stream,"\t \"optionType\": \"noArgument\",\n"); break; case GT_OPT_REQUIRED: fprintf(stream,"\t \"optionType\": \"required\",\n"); break; case GT_OPT_OPTIONAL: fprintf(stream,"\t \"optionType\": \"optional\",\n"); break; } // Argument Type switch (options[i].argument_type) { case GT_OPT_NONE: fprintf(stream,"\t \"argumentType\": null,\n"); break; case GT_OPT_INT: fprintf(stream,"\t \"argumentType\": \"int\",\n"); break; case GT_OPT_FLOAT: fprintf(stream,"\t \"argumentType\": \"float\",\n"); break; case GT_OPT_CHAR: fprintf(stream,"\t \"argumentType\": \"char\",\n"); break; case GT_OPT_STRING: fprintf(stream,"\t \"argumentType\": \"string\",\n"); break; case GT_OPT_BOOL: fprintf(stream,"\t \"argumentType\": \"bool\",\n"); break; } // Print extra command line syntax info fprintf(stream,"\t \"commandInfo\": \"%s\"",options[i].command_info); // Print description (@print_description) if (print_description && !gt_streq(options[i].description,"")) { fprintf(stream,",\n\t \"description\": \"%s\"",options[i].description); } fprintf(stream,"\n\t}"); } fprintf(stream,"\n ]\n"); fprintf(stream,"}\n"); }
END_TEST START_TEST(gt_test_template_to_string) { fail_unless(gt_input_map_parse_template( "ID\tACGT\t####\t1\tchr1:-:20:4",source)==0); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t1\tchr1:-:20:4\n")); }
END_TEST START_TEST(gt_test_template_merge_hang) { fail_unless(gt_input_map_parse_template( "HWI-962:71:D0PEYACXX:4:1101:18640:2354/2\tCGCGCGGGAGCCAGCAGGAGCACCAGCTGCGCAGGCAGGTTGAACTGCTGGCTTATAAAGTAGAGCAGGAGAAGT\t" "@CCFFFFFHHHHHIJIJJIJJJJJJJIIJGIDGIHHHFF6>CCCDEDDDDCBDD>CCDCC>CCCCCDDDDDBDC>\t0:0:0:0:0:0\t-",source)==0); fail_unless(gt_input_map_parse_template( "HWI-962:71:D0PEYACXX:4:1101:18640:2354/2\tCGCGCGGGAGCCAGCAGGAGCACCAGCTGCGCAGGCAGGTTGAACTGCTGGCTTATAAAGTAGAGCAGGAGAAGT\t" "@CCFFFFFHHHHHIJIJJIJJJJJJJIIJGIDGIHHHFF6>CCCDEDDDDCBDD>CCDCC>CCCCCDDDDDBDC>\t0:1\tchr21:+:47848466:39>1419*36",target)==0); // merge into source gt_template_merge_template_mmaps(source,target); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line,"HWI-962:71:D0PEYACXX:4:1101:18640:2354/2\tCGCGCGGGAGCCAGCAGGAGCACCAGCTGCGCAGGCAGGTTGAACTGCTGGCTTATAAAGTAGAGCAGGAGAAGT\t" "@CCFFFFFHHHHHIJIJJIJJJJJJJIIJGIDGIHHHFF6>CCCDEDDDDCBDD>CCDCC>CCCCCDDDDDBDC>\t0:1+0:0:0:0\tchr21:+:47848466:39>1419*36\n")); }
)); gt_string_clear(string); gt_alignment *alignment_dst; alignment_dst = gt_alignment_copy(alignment,false); GT_ALIGNMENT_ITERATE(alignment,map) { gt_alignment_insert_map(alignment_dst,gt_map_copy(map)); } gt_output_map_sprint_alignment(string, alignment_dst, output_attributes); // convert to string line = gt_string_get_string(string); fail_unless(gt_streq(line, "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16\n" )); gt_string_clear(string); } END_TEST Suite *gt_template_utils_suite(void) { Suite *s = suite_create("gt_template_utils"); /* String parsers test case */ TCase *test_case = tcase_create("Template Utils"); tcase_add_checked_fixture(test_case,gt_template_utils_setup,gt_template_utils_teardown); tcase_add_test(test_case,gt_test_template_merge);