| 
					
				 | 
			
			
				@@ -0,0 +1,125 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "../Tests.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "core/RingBuffer.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "core/Utility.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testReadAndWrite() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreRingBuffer r = CORE_RING_BUFFER(5, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(4, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(4, coreRingBufferGetC(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testOverflow() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreRingBuffer r = CORE_RING_BUFFER(3, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testRefill() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreRingBuffer r = CORE_RING_BUFFER(3, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(5, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(6, coreRingBufferGet(&r, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testClear() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreRingBuffer r = CORE_RING_BUFFER(3, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreClearRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testOverall() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreRingBuffer ri = CORE_RING_BUFFER(3, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&ri, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&ri, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&ri, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreRingBuffer r = CORE_RING_BUFFER(0, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreSwapRingBuffer(&r, &ri); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[1, 2, 3]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[2, 3]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[2, 3, 4]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[3, 4]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferAdd(&r, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[3, 4, 5]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreRingBufferRemove(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[4, 5]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreClearRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreToStringRingBuffer(&r, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, r.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyRingBuffer(&r); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyRingBuffer(&ri); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void coreTestRingBuffer() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testReadAndWrite(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testOverflow(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testRefill(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testClear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testOverall(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |