File: test_human_readable.c

package info (click to toggle)
netproc 0.6.6-0.1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 908 kB
  • sloc: ansic: 7,876; makefile: 101; sh: 12
file content (86 lines) | stat: -rw-r--r-- 2,088 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

#include <stdio.h>
#include <stdbool.h>
#include <string.h>

#include "unity.h"
#include "config.h"
#include "human_readable.h"

#pragma GCC diagnostic ignored "-Wunused-value"

// #define DPRINT 1

#ifdef DPRINT
#define PRINT printf
#else
#define PRINT
#endif

#define ARRAY_SIZE( ar ) ( sizeof ( ar ) / sizeof ( ar[0] ) )

static char buff[14];

void
test_Byte_per_second_si ( void )
{
  int values[] = { 0, 500, 1024, 2048, 5000, 9999, 10485760 };
  char *expected[] = { "0",          "500 B/s",    "1.00 KiB/s", "2.00 KiB/s",
                       "4.88 KiB/s", "9.76 KiB/s", "10.00 MiB/s" };

  define_sufix ( false, true );

  for ( size_t i = 0; i < ARRAY_SIZE ( values ); i++ )
    {
      TEST_ASSERT_TRUE (
              human_readable ( buff, sizeof ( buff ), values[i], RATE ) );
      PRINT ( "%s\n", buff );
      TEST_ASSERT_EQUAL_STRING ( expected[i], buff );
    }
}

void
test_bit_per_second_si ( void )
{
  int values[] = { 0, 1015, 1024, 2048, 6000, 9999, 10485760 };
  char *expected[] = { "0",          "1015 b/s",   "1.00 Kib/s", "2.00 Kib/s",
                       "5.86 Kib/s", "9.76 Kib/s", "10.00 Mib/s" };

  define_sufix ( false, false );

  for ( size_t i = 0; i < ARRAY_SIZE ( values ); i++ )
    {
      TEST_ASSERT_TRUE (
              human_readable ( buff, sizeof ( buff ), values[i], RATE ) );
      PRINT ( "%s\n", buff );
      TEST_ASSERT_EQUAL_STRING ( expected[i], buff );
    }
}

void
test_bit_per_second_iec ( void )
{
  int values[] = { 0, 999, 1015, 1024, 6000, 9999, 10485760 };
  char *expected[] = { "0",         "999 b/s",    "1.01 Kb/s", "1.02 Kb/s",
                       "6.00 Kb/s", "10.00 Kb/s", "10.48 Mb/s" };

  define_sufix ( true, false );

  for ( size_t i = 0; i < ARRAY_SIZE ( values ); i++ )
    {
      TEST_ASSERT_TRUE (
              human_readable ( buff, sizeof ( buff ), values[i], RATE ) );
      PRINT ( "%s\n", buff );
      TEST_ASSERT_EQUAL_STRING ( expected[i], buff );
    }
}

void
test_human_readable ( void )
{
  test_Byte_per_second_si ();

  test_bit_per_second_si ();

  test_bit_per_second_iec ();
}