aocc22

Advent of Code 2022
git clone git://www.tkruger.se/aocc22.git
Log | Files | Refs | README

test_reading.c (1465B)


      1 #include "test_reading.h"
      2 
      3 void test_reading_readall()
      4 {
      5     char* read;
      6     size_t n = readall(&read, "testfile1.txt");
      7 
      8     CU_ASSERT(n == 49);
      9     CU_ASSERT(strcmp(read, "Hello, this is a test file.\nIt contains two rows.") == 0);
     10 
     11     free(read);
     12 }
     13 
     14 void test_reading_readlines()
     15 {
     16     char** read;
     17     size_t n = readlines(&read, "testfile1.txt");
     18 
     19     CU_ASSERT(n == 2);
     20     CU_ASSERT(strcmp(read[0], "Hello, this is a test file.\n") == 0);
     21     CU_ASSERT(strcmp(read[1], "It contains two rows.") == 0);
     22 
     23     size_t i;
     24     for(i = 0; i < n; i++) free(read[i]);
     25     free(read);
     26 }
     27 
     28 void test_reading_read_next_u64()
     29 {
     30 	FILE* fp = fopen("testfile2.txt", "r");
     31 
     32 	uint64_t r;
     33 	CU_ASSERT(read_next_u64(&r, fp) == 4);
     34 	CU_ASSERT(r == 4711);
     35 	CU_ASSERT(read_next_u64(&r, fp) == 2);
     36 	CU_ASSERT(r == 65);
     37 	CU_ASSERT(read_next_u64(&r, fp) == 4);
     38 	CU_ASSERT(r == 1337);
     39 	CU_ASSERT(read_next_u64(&r, fp) == 1);
     40 	CU_ASSERT(r == 1);
     41 	CU_ASSERT(read_next_u64(&r, fp) == 1);
     42 	CU_ASSERT(r == 0);
     43 
     44 	fclose(fp);
     45 }
     46 
     47 void test_reading_sread_next_u64()
     48 {
     49 	char tst[] = "foobarm4711asd65,1337.1\n0";
     50 	char* n = tst;
     51 	uint64_t r;
     52 
     53 	CU_ASSERT((n = sread_next_u64(&r, n)) != NULL);
     54 	CU_ASSERT(r == 4711);
     55 	CU_ASSERT((n = sread_next_u64(&r, n)) != NULL);
     56 	CU_ASSERT(r == 65);
     57 	CU_ASSERT((n = sread_next_u64(&r, n)) != NULL);
     58 	CU_ASSERT(r == 1337);
     59 	CU_ASSERT((n = sread_next_u64(&r, n)) != NULL);
     60 	CU_ASSERT(r == 1);
     61 	CU_ASSERT((n = sread_next_u64(&r, n)) == NULL);
     62 	CU_ASSERT(r == 0);
     63 }