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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
#include <stdio.h>
#include "wnlib.h"
#include "wnasrt.h"
#include "wncmp.h"
#include "wneq.h"
local void test_cmp()
{
fprintf(stderr,"testing cmp...\n");
wn_assert(wn_intcmp(1,1) == 0);
wn_assert(wn_intcmp(1,0) > 0);
wn_assert(wn_intcmp(0,1) < 0);
wn_assert(wn_intcmp(-7,-7) == 0);
wn_assert(wn_intcmp(-7,-4) < 0);
wn_assert(wn_intcmp(-7,-401) > 0);
wn_assert(wn_intcmp(-18,31) < 0);
{
char *p1="foo1",*p2="foo2";
bool success;
wn_assert(wn_ptrcmp(p1,p1) == 0);
wn_assert(wn_ptrcmp(p2,p2) == 0);
wn_assert(wn_ptrcmp(p1,p2) != 0);
wn_assert(wn_ptrNULLcmp(&success,NULL,NULL) == 0);
wn_assert(success);
wn_assert(wn_ptrNULLcmp(&success,NULL,p1) < 0);
wn_assert(success);
wn_assert(wn_ptrNULLcmp(&success,p1,NULL) > 0);
wn_assert(success);
wn_assert(wn_ptrNULLcmp(&success,p1,p1) == 0);
wn_assert(success);
wn_assert(wn_ptrNULLcmp(&success,p1,p2) == 0);
wn_assert(!success);
}
wn_assert(wn_boolcmp(TRUE,TRUE) == 0);
wn_assert(wn_boolcmp(FALSE,TRUE) < 0);
wn_assert(wn_boolcmp(TRUE,FALSE) > 0);
wn_assert(wn_boolcmp(FALSE,FALSE) == 0);
wn_assert(wn_boolcmp((bool)1,(bool)2) == 0);
wn_assert(wn_boolcmp((bool)(-1),FALSE) > 0);
wn_assert(wn_doublecmp(1.2,1.2) == 0);
wn_assert(wn_doublecmp(1.3,1.2) > 0);
wn_assert(wn_doublecmp(1.3,1.4) < 0);
wn_assert(wn_doublecmp(-1.3,-1.4) > 0);
wn_assert(wn_doublecmp(-1.3,0.4) < 0);
{
double *pd1,*pd2,
d1,d2;
pd1 = &d1;
pd2 = &d2;
d1 = -1.3;
d2 = -1.3;
wn_assert(wn_pdoublecmp(pd1,pd2) == 0);
d1 = 1.2;
d2 = -1.3;
wn_assert(wn_pdoublecmp(pd1,pd2) > 0);
}
wn_assert(wn_numstrcmp("wow1","wow1") == 0);
wn_assert(wn_numstrcmp("wow2","wow1") > 0);
wn_assert(wn_numstrcmp("wow1","wow2") < 0);
wn_assert(wn_numstrcmp("wow10","wow2") > 0);
wn_assert(wn_numstrcmp("wow2","wow10") < 0);
fprintf(stderr," ok!!!!!!\n");
}
local void test_eq()
{
fprintf(stderr,"testing eq...\n");
wn_assert(wn_inteq(1,1));
wn_assert(!wn_inteq(1,0));
wn_assert(!wn_inteq(0,1));
wn_assert(wn_inteq(-7,-7));
wn_assert(!wn_inteq(-7,-4));
wn_assert(!wn_inteq(-7,-401));
wn_assert(!wn_inteq(-18,31));
{
char *p1="foo1",*p2="foo2";
bool success;
wn_assert(wn_ptreq(p1,p1));
wn_assert(wn_ptreq(p2,p2));
wn_assert(!wn_ptreq(p1,p2));
wn_assert(wn_ptrNULLeq(&success,NULL,NULL));
wn_assert(success);
wn_assert(!wn_ptrNULLeq(&success,NULL,p1));
wn_assert(success);
wn_assert(!wn_ptrNULLeq(&success,p1,NULL) > 0);
wn_assert(success);
wn_assert(wn_ptrNULLeq(&success,p1,p1));
wn_assert(success);
wn_assert(wn_ptrNULLeq(&success,p1,p2));
wn_assert(!success);
}
fprintf(stderr," ok!!!!!!\n");
}
void main(void)
{
test_cmp();
test_eq();
exit(0);
}
|