aocc23

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

test_reading.c (1477B)


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