8 #include "vg/vg_platform.h"
9 #include "vg/vg_stdint.h"
10 #include "vg/vg_store.h"
14 #include "highscores.h"
16 int main(int argc
, const char *argv
[])
18 vg_info( "Database test\n" );
20 if( !highscores_init( 200000, 100000 ) )
24 vg_log( "Inserting test records...\n" );
25 for( int i
=0; i
<5000; i
++ )
27 highscore_record entry
;
28 entry
.trackid
= vg_randf() * 138.0f
;
29 entry
.points
= vg_randf() * 10000.0f
;
30 entry
.time
= vg_randf() * 20000.0f
;
31 entry
.playerid
= rand() % 800;
32 entry
.datetime
= vg_randf() * 100000.0f
;
34 highscores_push_record( &entry
);
37 for( int i
=0; i
<80; i
++ )
42 for( int i
=0; i
<l
; i
++ )
43 rando
[i
] = 'a' + rand() % 10;
46 highscore_set_user_nickname( rand() % 800, rando
);
53 aatree_show_counts( &highscore_system
.aainfo_playerinfo_playerid
,
54 highscore_system
.dbheader
.playerinfo_root
, 0,
55 &ln
, &err
, _highscore_showname
, 1 );
58 highscores_print_track( 12, 10 );
59 highscores_serialize_all();
65 typedef struct yoyo_t yoyo_t
;
72 static void yoyo_t_show( void *_data
)
75 printf( "%d ", data
->my_data
);
78 static int yoyo_t_cmp( void *_a
, void *_b
)
80 yoyo_t
*a
= _a
, *b
= _b
;
81 return b
->my_data
- a
->my_data
;
84 int main(int argc
, const char *argv
[])
86 yoyo_t
*allsorts
= malloc( sizeof(yoyo_t
) * 10000 );
90 test
.offset
= offsetof( yoyo_t
, anode
);
91 test
.stride
= sizeof( yoyo_t
);
92 test
.p_cmp
= yoyo_t_cmp
;
94 for( int i
=0; i
<30; i
++ ) vg_randf();
96 for( int j
=0; j
<1000; j
++ )
99 aatree_ptr root
= AATREE_PTR_NIL
;
100 for( int i
=0; i
<spam_amt
; i
++ )
102 yoyo_t
*rando
= &allsorts
[i
];
103 rando
->my_data
= vg_randf() * 563.0f
;
104 root
= aatree_insert( &test
, root
, i
);
109 aatree_show_counts( &test
, root
, 0, &ln
, &err
, yoyo_t_show
, drawting
);
113 vg_info( "Ptr of %d: %u\n", value
, aatree_find( &test
, root
, &value
) );
115 for( int i
=0; i
<20; i
++ )
117 yoyo_t
*v
= aatree_get_data(&test
,aatree_kth( &test
, root
, i
));
118 vg_info( "Value of [%d]: %d\n", i
, v
->my_data
);
121 if( ln
!= spam_amt
|| err
!= 0 )
123 vg_error( "ADJAWIUDWAJD\n" );
127 aatree_ptr traverser
= aatree_kth( &test
, root
, 0 );
129 while( traverser
!= AATREE_PTR_NIL
)
131 yoyo_t
*v
= aatree_get_data( &test
, traverser
);
132 vg_info( "... %d\n", v
->my_data
);
134 traverser
= aatree_next( &test
, traverser
);
138 for( int i
=0; i
<orig
; i
++ )
140 int remover
= vg_min( (int)(vg_randf() * spam_amt
), spam_amt
-1 );
141 aatree_ptr kremove
= aatree_kth( &test
, root
, remover
);
143 vg_info( "Removing K %d\n", remover
);
144 vg_info( "id: %d\n", kremove
);
147 vg_info( "AND NOW REMOVE K %d (id: %d, value: %d)\n", remover
, kremove
,
148 *((int*)aatree_get_data( &test
, kremove
)) );
150 root
= aatree_del( &test
, kremove
);
154 aatree_show_counts( &test
, root
, 0, &ln
, &err
, yoyo_t_show
, drawting
);
156 if( ln
!= spam_amt
-1 || err
!= 0 )
158 vg_error( "ADJAWIUDWAJD ( %d %d // %d, %d)\n",
159 j
, ln
, spam_amt
, err
);
163 vg_success( "%d\n", j
);