/*TITLE generates test code file */ /****keyword-flag*** "%v %f %n" */ /* "4 20-Mar-98,20:14:08 STESTGEN.CPP" */ #include #include #include "superm.h" void process(FILE *in_file, FILE *out_file); int main(int argc, char *argv[]) { FILE *in_file; FILE *out_file; if (argc < 3) { printf("Usage: stestgen in_code_file out_code_file\n"); exit(1); } in_file = fopen(argv[1],"r+"); out_file = fopen(argv[2],"w+"); process(in_file,out_file); fclose(in_file); fclose(out_file); return 0; } void process(FILE *in_file,FILE *out_file) { unsigned record_number; char *ascii_code_number[FILE_CAPACITY]; int i; char *result; int selection_range; char temp_code_number[100]; int random_value; int file_capacity; for (i = 0; i < FILE_CAPACITY; i ++) { ascii_code_number[i] = (char*)malloc(ASCII_KEY_SIZE+1); result = fgets(temp_code_number,100,in_file); if (result == NULL) break; temp_code_number[ASCII_KEY_SIZE] = 0; strcpy(ascii_code_number[i],temp_code_number); } file_capacity = FILE_CAPACITY; /* for easier debugging */ for (i = 0; i < FILE_CAPACITY; i ++) { random_value = rand(); random_value = random_value % file_capacity; if (random_value < file_capacity * 80 / 100) { /* usually pick one in first 20% */ selection_range = file_capacity * 20 / 100; record_number = rand() % selection_range; } else { selection_range = file_capacity * 80 / 100; record_number = rand() % selection_range + file_capacity * 20 / 100; } fputs(ascii_code_number[record_number],out_file); fputs("\n",out_file); } }