wordreference/libjson/_internal/TestSuite/TestEquality.cpp

101 lines
2.6 KiB
C++

#include "TestSuite.h"
#include "../Source/JSONNode.h"
void TestSuite::TestEquality(void){
UnitTest::SetPrefix("TestEquality.cpp - Equality");
#ifdef JSON_LIBRARY
JSONNODE * test1 = json_new(JSON_NODE);
JSONNODE * test2 = json_new(JSON_NODE);
assertTrue(json_equal(test1, test2));
//check literally the same internal pointer
json_set_n(test2, test1);
#ifdef JSON_UNIT_TEST
#ifdef JSON_REF_COUNT
assertEquals(((JSONNode*)test1) -> internal, ((JSONNode*)test2) -> internal);
#else
assertNotEquals(((JSONNode*)test1) -> internal, ((JSONNode*)test2) -> internal);
#endif
#endif
assertTrue(json_equal(test1, test2));
json_set_a(test1, JSON_TEXT("hello"));
json_set_a(test2, JSON_TEXT("hello"));
assertTrue(json_equal(test1, test2));
json_set_f(test1, 13.5f);
json_set_f(test2, 13.5f);
assertTrue(json_equal(test1, test2));
json_set_i(test1, 13);
json_set_f(test2, 13.0f);
assertTrue(json_equal(test1, test2));
json_set_b(test1, true);
json_set_b(test2, (int)true);
assertTrue(json_equal(test1, test2));
json_set_b(test1, false);
json_set_b(test2, (int)false);
assertTrue(json_equal(test1, test2));
json_nullify(test1);
json_nullify(test2);
assertTrue(json_equal(test1, test2));
JSONNODE * test3 = json_new(JSON_NULL);
assertTrue(json_equal(test1, test3));
assertTrue(json_equal(test3, test3));
json_delete(test1);
json_delete(test2);
json_delete(test3);
#else
JSONNode test1;
JSONNode test2;
assertEquals(test1, test2);
//check literally the same internal pointer
test2 = test1;
#ifdef JSON_UNIT_TEST
#ifdef JSON_REF_COUNT
assertEquals(test1.internal, test2.internal);
#else
assertNotEquals(test1.internal, test2.internal);
#endif
#endif
assertEquals(test1, test2);
test1 = JSON_TEXT("hello");
test2 = JSON_TEXT("hello");
assertEquals(test1, JSON_TEXT("hello"));
assertEquals(test1, test2);
test1 = 13.5f;
test2 = 13.5f;
assertEquals(test1, 13.5f);
assertEquals(test1, test2);
test1 = 13;
test2 = 13.0f;
assertEquals(test1, 13.0f);
assertEquals(test1, 13);
assertEquals(test1, test2);
test1 = true;
test2 = true;
assertEquals(test1, true);
assertEquals(test1, test2);
test1 = false;
test2 = false;
assertEquals(test1, false);
assertEquals(test1, test2);
test1.nullify();
test2.nullify();
assertEquals(test1, test2);
JSONNode test3 = JSONNode(JSON_NULL);
assertEquals(test1, test3);
assertEquals(test2, test3);
#endif
}