aa1bf13b86f7cf6312c312aa618f8b295f2c0837
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 ) )
23 vg_log( "Inserting test records...\n" );
24 for( int i
=0; i
<200000; i
++ )
26 highscore_record entry
;
27 entry
.trackid
= vg_randf() * 129.0f
;
28 entry
.points
= vg_randf() * 10000.0f
;
29 entry
.time
= vg_randf() * 20000.0f
;
30 entry
.playerid
= rand() % 800;
31 entry
.datetime
= vg_randf() * 100000.0f
;
33 highscores_push_record( &entry
);
37 highscores_print_track( 2, 10 );
43 typedef struct yoyo_t yoyo_t
;
50 static void yoyo_t_show( void *_data
)
53 printf( "%d ", data
->my_data
);
56 static int yoyo_t_cmp( void *_a
, void *_b
)
58 yoyo_t
*a
= _a
, *b
= _b
;
59 return b
->my_data
- a
->my_data
;
62 int main(int argc
, const char *argv
[])
64 yoyo_t
*allsorts
= malloc( sizeof(yoyo_t
) * 10000 );
68 test
.offset
= offsetof( yoyo_t
, anode
);
69 test
.stride
= sizeof( yoyo_t
);
70 test
.p_cmp
= yoyo_t_cmp
;
72 for( int i
=0; i
<30; i
++ ) vg_randf();
74 for( int j
=0; j
<1000; j
++ )
77 aatree_ptr root
= AATREE_PTR_NIL
;
78 for( int i
=0; i
<spam_amt
; i
++ )
80 yoyo_t
*rando
= &allsorts
[i
];
81 rando
->my_data
= vg_randf() * 563.0f
;
82 root
= aatree_insert( &test
, root
, i
);
87 aatree_show_counts( &test
, root
, 0, &ln
, &err
, yoyo_t_show
, drawting
);
91 vg_info( "Ptr of %d: %u\n", value
, aatree_find( &test
, root
, &value
) );
93 for( int i
=0; i
<20; i
++ )
95 yoyo_t
*v
= aatree_get_data(&test
,aatree_kth( &test
, root
, i
));
96 vg_info( "Value of [%d]: %d\n", i
, v
->my_data
);
99 if( ln
!= spam_amt
|| err
!= 0 )
101 vg_error( "ADJAWIUDWAJD\n" );
105 aatree_ptr traverser
= aatree_kth( &test
, root
, 0 );
107 while( traverser
!= AATREE_PTR_NIL
)
109 yoyo_t
*v
= aatree_get_data( &test
, traverser
);
110 vg_info( "... %d\n", v
->my_data
);
112 traverser
= aatree_next( &test
, traverser
);
116 for( int i
=0; i
<orig
; i
++ )
118 int remover
= vg_min( (int)(vg_randf() * spam_amt
), spam_amt
-1 );
119 aatree_ptr kremove
= aatree_kth( &test
, root
, remover
);
121 vg_info( "Removing K %d\n", remover
);
122 vg_info( "id: %d\n", kremove
);
125 vg_info( "AND NOW REMOVE K %d (id: %d, value: %d)\n", remover
, kremove
,
126 *((int*)aatree_get_data( &test
, kremove
)) );
128 root
= aatree_del( &test
, kremove
);
132 aatree_show_counts( &test
, root
, 0, &ln
, &err
, yoyo_t_show
, drawting
);
134 if( ln
!= spam_amt
-1 || err
!= 0 )
136 vg_error( "ADJAWIUDWAJD ( %d %d // %d, %d)\n",
137 j
, ln
, spam_amt
, err
);
141 vg_success( "%d\n", j
);