add .gitignore
[tedtools.git] / gendata.c
index 3b7ae6f..fc7f3c0 100644 (file)
--- a/gendata.c
+++ b/gendata.c
@@ -39,7 +39,7 @@ static void
 usage() {
         puts(
         "Usage:\n"
-        "tbtreetest  -b [-r -c COUNT\n"
+        "tbtreetest  -b [-r -c COUNT -f] | -s [ -c COUNT ]\n"
         );
         exit(1);
 }
@@ -49,17 +49,25 @@ extern int opterr;
 
 #define NO_MODE                0
 #define MODE_BTREE     1
+#define MODE_SFX       2
 
+static char *symbols="qwertyuiopasdfghjklzxcvbnm1234567890";
+static int symbolslen=0;
 
 int
 main(int argn, char *argv[]) {
         int mode=NO_MODE;
-       int isrnd=0, count=10,i; 
+       int isrnd=0, count=10,i, isfind=0
 
         opentlog(TL_OPEN_STDERR,TL_DEBUG, NULL);
+       symbolslen=strlen(symbols);
+       
           
-        while((i=getopt(argn,argv,"brc:")) != EOF) {
+        while((i=getopt(argn,argv,"sbrc:f")) != EOF) {
                 switch(i) {
+                        case 'f':
+                                isfind=1;
+                                break;
                         case 'r':
                                 isrnd=1;
                                 break;
@@ -67,6 +75,10 @@ main(int argn, char *argv[]) {
                                if ( mode ) usage();
                                 mode = MODE_BTREE;
                                 break;
+                        case 's':
+                               if ( mode ) usage();
+                                mode = MODE_SFX;
+                                break;
                         case 'c':
                                 count=atoi(optarg);
                                 break;
@@ -77,14 +89,24 @@ main(int argn, char *argv[]) {
        }
 
        if ( mode==MODE_BTREE ) {
-               int j, cnt,c;
-               for(i=0;i<count;i++) {
-                       printf("I\t%d\t", (int)( (isrnd) ? random()%count : i ));
-                       cnt=1+random()%512;
-                       for(j=0;j<cnt;j++) {
-                               do { c=random()%128; } while ( !isalnum(c) );   
-                               fputc(c, stdout);
+               int cnt;
+               if ( isfind ) 
+                       for(i=0;i<count;i++)
+                               printf("S\t%d\n", (int)( (isrnd) ? random()%count : i )); 
+               else    
+                       for(i=0;i<count;i++) {
+                               printf("I\t%d\t", (int)( (isrnd) ? random()%count : i ));
+                               cnt=1+random()%512;
+                               while(cnt-->0)
+                                       fputc( symbols[ random()%symbolslen ], stdout);
+                               fputc('\n', stdout);
                        }
+       } else if ( mode==MODE_SFX ) {
+               int cnt;
+               for(i=0;i<count;i++) {
+                       cnt=1+random()%10;
+                       while(cnt-->0)
+                               fputc( tolower(symbols[ random()%symbolslen ]), stdout);
                        fputc('\n', stdout);
                }
        } else {