コード例 #1
0
void ExecutingPietLibraries::random(std::vector<PietTree> & pt){
    if(pt.size() == 0 )return;
    if(pt[0].isLeaf()) return;
    pt = pt[0].Nodes();

    if(pt.size() < 1) return;
    int max = pt[0].Val();
    for(int i:range(1)) pt.pop_back();
    std::uniform_int_distribution<int> randomrange( 0, max ) ;
    pt.push_back(PietTree( abs(randomrange(rnd))));
    return;
}
コード例 #2
0
ファイル: main.c プロジェクト: chrishajas/gpdb
void table_gen(long long nrows, Stringlist wlist,int numcols, int *column_types, double *column_mins, double *column_maxes) {

    int itemp;
    int i,j,ii, nwords;
    int year, month, day, hour, minute, second;
    int minyear, minmonth, minday;
    int maxyear, maxmonth, maxday;

    int leaps[] = LEAPS;
    int nonleaps[] = NONLEAPS;

    //printf("Number of rows to be generated: %ld\n",nrows);
    //exit(0);

    for (i=0; i<nrows; i++) {

        for (j=0; j<numcols; j++) {
            switch (column_types[j]) {
            case INTEGER:
                //printf("column_type[%d] = INTEGER\n",j+1);
                printf("%d",(int)randomrange(column_mins[j],column_maxes[j]));
                break;;
            case VARCHAR:
                //printf("column_type[%d] = VARCHAR\n",j+1);
                nwords = (int)randomrange(column_mins[j],column_maxes[j]);
                for (ii=0; ii<nwords ; ii++) {
                    itemp = (int)randomrange(0,wlist.used_size-1);
                    printf("%s",wlist.list[itemp]);
                    if (ii != (nwords-1)) printf(" ");
                }
                break;;
            case TIMESTAMP:
                //printf("column_type[%d] = TIMESTAMP\n",j+1);
                minyear = getyear(column_mins[j]);
                maxyear = getyear(column_maxes[j]);
                minmonth = getmonth(column_mins[j]);
                maxmonth = getmonth(column_maxes[j]);
                minday = getday(column_mins[j]);
                maxday = getday(column_maxes[j]);

                year 	= (int)randomrange(minyear,maxyear);
                month 	= (int)randomrange(minmonth,maxmonth);
                day 	= (int)randomrange(minday,maxday);
                if (ISLEAP(year)) {
                    day = MIN(leaps[month-1],day);
                } else {
                    day = MIN(nonleaps[month-1],day);
                }
                hour 	= (int)randomrange(0,23);
                minute 	= (int)randomrange(0,59);
                second 	= (int)randomrange(0,59);

                printf("%.4d-%.2d-%.2d %.2d:%.2d:%.2d",year,month,day,hour,minute,second);
                break;;
            case NUMERIC:
                //printf("column_type[%d] = NUMERIC\n",j+1);
                printf("%.6f",(float)randomrange(column_mins[j],column_maxes[j]));
                break;;
            }
            if (j != (numcols-1)) printf("|");

        } //End of numcolumns
        printf("\n");

    }

}