Exemple #1
0
void
test_io_stream_open
(void)
{
   iostream_t * stream;

   // Test invalid arguments.
   redirect_stderr();
   stream = io_stream_open("fake-file.txt");
   test_assert(stream == NULL);
   unredirect_stderr();

   // Load files.
   stream = io_stream_open("examples/io_input.raw");
   test_assert(stream != NULL);
   io_stream_free(stream);
 
   stream = io_stream_open("examples/io_input.fasta");
   test_assert(stream != NULL);
   io_stream_free(stream);

   stream = io_stream_open("examples/io_input.fastq");
   test_assert(stream != NULL);
   io_stream_free(stream);
}
Exemple #2
0
void i_stream_unref(struct istream **stream)
{
	struct istream_private *_stream = (*stream)->real_stream;

	if (_stream->iostream.refcount == 1) {
		if (_stream->line_str != NULL)
			str_free(&_stream->line_str);
	}
	if (!io_stream_unref(&(*stream)->real_stream->iostream)) {
		if ((*stream)->real_stream->parent != NULL)
			i_stream_unref(&(*stream)->real_stream->parent);
		io_stream_free(&(*stream)->real_stream->iostream);
	}
	*stream = NULL;
}
Exemple #3
0
void
test_io_stream_read_seq
(void)
{
   iostream_t * stream;
   gstack_t   * stack;
   seqread_t  * read;

   // Invalid arguments.
   redirect_stderr();
   test_assert(io_stream_read_seq(NULL) == NULL);
   unredirect_stderr();

   // Load files.
   // Read RAW file.
   stream = io_stream_open("examples/io_input.raw");
   test_assert_critical(stream != NULL);
   
   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 6);
   
   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "NNNNNNLLYYYYJDFLS") == 0);
   test_assert(strcmp(seqread_tag(read), "6") == 0);
   seqread_free(read);
   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "NNNNNNNNACGTACGCC") == 0);
   test_assert(strcmp(seqread_tag(read), "5") == 0);
   seqread_free(read);
   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "ACGTACATGTATGACAC") == 0);
   test_assert(strcmp(seqread_tag(read), "4") == 0);
   seqread_free(read);

   gstack_free(stack);
   io_stream_free(stream);

   // Read FASTA file.
   stream = io_stream_open_buf("examples/io_input.fasta", 80);
   test_assert_critical(stream != NULL);

   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 4);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "ACGTACATGTATGACAC") == 0);
   test_assert(strcmp(seqread_tag(read), "seq4") == 0);
   seqread_free(read);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "AGTCGANTATACNTACG") == 0);
   test_assert(strcmp(seqread_tag(read), "seq3") == 0);
   seqread_free(read);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "GTATCGACTACGAGCTA") == 0);
   test_assert(strcmp(seqread_tag(read), "seq2") == 0);
   seqread_free(read);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "ATGCGTACGTCGTATCA") == 0);
   test_assert(strcmp(seqread_tag(read), "seq1") == 0);
   seqread_free(read);
   gstack_free(stack);
   
   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 2);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "NNNNNNLLYYYYJDFLS") == 0);
   test_assert(strcmp(seqread_tag(read), "seq6") == 0);
   seqread_free(read);
   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "NNNNNNNNACGTACGCC") == 0);
   test_assert(strcmp(seqread_tag(read), "seq5") == 0);
   seqread_free(read);


   gstack_free(stack);
   io_stream_free(stream);

   // Read FASTQ file.
   stream = io_stream_open_buf("examples/io_input.fastq", 50);
   test_assert_critical(stream != NULL);
   
   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 2);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "GTATCGACTACGAGCTA") == 0);
   test_assert(strcmp(seqread_tag(read), "seq2") == 0);
   test_assert(strcmp(seqread_qscore(read), "BACBABCA0ACBB00AC") == 0);   
   seqread_free(read);

   read = seqread_pop(stack);
   test_assert(read != NULL);
   test_assert(strcmp(seqread_seq(read), "ATGCGTACGTCGTATCA") == 0);
   test_assert(strcmp(seqread_tag(read), "seq1") == 0);
   test_assert(strcmp(seqread_qscore(read), "12391284194819241") == 0);   
   seqread_free(read);
   gstack_free(stack);

   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 2);
   gstack_free(stack);

   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 2);
   gstack_free(stack);

   stack = io_stream_read_seq(stream);
   test_assert_critical(stack != NULL);
   test_assert(gstack_num_elm(stack) == 0);
   gstack_free(stack);

   stack = io_stream_read_seq(stream);
   test_assert(stack == NULL);
   
   io_stream_free(stream);   
}