OSDN Git Service

chnlib:CHNLIB_UUID(UUIDv4), メルセンヌ・ツイスターを利用した乱数生成器CHNLIB_RandomGeneratorMTを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / libtest / libtest / main.c
1 //
2 //  main.c
3 //  libtest
4 //
5 //  Created by 西田 耀 on 13/02/25.
6 //  Copyright (c) 2013年 Hikaru Nishida. All rights reserved.
7 //
8
9 #include <stdio.h>
10 #include "chnlib.h"
11 #include <time.h>
12
13 int main(int argc, const char * argv[])
14 {
15     int i;
16     CHNLIB_RandomGeneratorMT *mt;
17     CHNLIB_UUID *uuid, *uuid2;
18     
19     mt = CHNLIB_RandomGeneratorMT_Initialise();
20     CHNLIB_RandomGeneratorMT_SetSeed(mt, (int)&mt ^ time(NULL));
21     
22     for(i = 0; i < 1024; i++){
23         uuid = CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(mt);
24         CHNLIB_UUID_Print(uuid);
25         printf(":0x%08X\n", CHNLIB_StructureHeader_GetHash(uuid));
26         release(uuid);
27     }
28     
29     uuid = CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(mt);
30     putc('\n', stdout);
31     CHNLIB_UUID_Print(uuid);
32     
33     uuid2 = CHNLIB_UUID_Copy(uuid);
34     putc('\n', stdout);
35     CHNLIB_UUID_Print(uuid2);
36     
37     if(CHNLIB_UUID_IsEqualToUUID(uuid, uuid2)){
38         printf("\neq\n");
39     } else{
40         printf("\nNOTeq\n");
41     }
42     release(uuid2);
43     
44     uuid2 = CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(mt);
45     putc('\n', stdout);
46     CHNLIB_UUID_Print(uuid2);
47     
48     if(CHNLIB_UUID_IsEqualToUUID(uuid, uuid2)){
49         printf("\neq\n");
50     } else{
51         printf("\nNOTeq\n");
52     }
53     release(uuid2);
54     
55     return 0;
56 }
57