OSDN Git Service

chnlib:CHNLIB_UUID(UUIDv4), メルセンヌ・ツイスターを利用した乱数生成器CHNLIB_RandomGeneratorMTを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / libtest / libtest / main.c
index 95079f4..76e2119 100644 (file)
@@ -8,32 +8,49 @@
 
 #include <stdio.h>
 #include "chnlib.h"
+#include <time.h>
 
 int main(int argc, const char * argv[])
 {
-    CHNLIB_String *str1, *str2, *str;
-    CHNLIB_UIPArray *array;
+    int i;
+    CHNLIB_RandomGeneratorMT *mt;
+    CHNLIB_UUID *uuid, *uuid2;
     
-    str = CHNLIB_String_Initialize("あいうえおかきs");
-    printf("0x%X:%s\n", CHNLIB_StructureHeader_GetHash(str), CHNLIB_String_GetReferencePointerOfCString(str));
+    mt = CHNLIB_RandomGeneratorMT_Initialise();
+    CHNLIB_RandomGeneratorMT_SetSeed(mt, (int)&mt ^ time(NULL));
     
-    str1 = CHNLIB_String_Initialize("あい");
-    printf("0x%X:%s\n", CHNLIB_StructureHeader_GetHash(str1), CHNLIB_String_GetReferencePointerOfCString(str1));
-    str2 = CHNLIB_String_Initialize("かき");
-    printf("0x%X:%s\n", CHNLIB_StructureHeader_GetHash(str2), CHNLIB_String_GetReferencePointerOfCString(str2));
-
-    str = CHNLIB_String_Concatenate(str1, str2);
-    printf("0x%X:%s\n", CHNLIB_StructureHeader_GetHash(str), CHNLIB_String_GetReferencePointerOfCString(str));
+    for(i = 0; i < 1024; i++){
+        uuid = CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(mt);
+        CHNLIB_UUID_Print(uuid);
+        printf(":0x%08X\n", CHNLIB_StructureHeader_GetHash(uuid));
+        release(uuid);
+    }
+    
+    uuid = CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(mt);
+    putc('\n', stdout);
+    CHNLIB_UUID_Print(uuid);
+    
+    uuid2 = CHNLIB_UUID_Copy(uuid);
+    putc('\n', stdout);
+    CHNLIB_UUID_Print(uuid2);
     
-    str = CHNLIB_String_Concatenate(str, str);
-    printf("0x%X:%s\n", CHNLIB_StructureHeader_GetHash(str), CHNLIB_String_GetReferencePointerOfCString(str));
+    if(CHNLIB_UUID_IsEqualToUUID(uuid, uuid2)){
+        printf("\neq\n");
+    } else{
+        printf("\nNOTeq\n");
+    }
+    release(uuid2);
     
-    array = CHNLIB_UIPArray_Initialize();
-    CHNLIB_UIPArray_AppendLast(&array, 0, str);
-    printf("0x%X", CHNLIB_StructureHeader_GetHash(array));
+    uuid2 = CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(mt);
+    putc('\n', stdout);
+    CHNLIB_UUID_Print(uuid2);
     
-    CHNLIB_UIPArray_AppendLast(&array, 0, str);
-    printf("0x%X", CHNLIB_StructureHeader_GetHash(array));
+    if(CHNLIB_UUID_IsEqualToUUID(uuid, uuid2)){
+        printf("\neq\n");
+    } else{
+        printf("\nNOTeq\n");
+    }
+    release(uuid2);
     
     return 0;
 }