Gathering test data

0 Likes

Problem:

How do I generate a file of test data for testing COBOL syntax?

Resolution:

There is a website, http://www.briandunning.com/sample-data/, that has free sample data for testing. They are 500 records. For a nominal price, you can download even larger data.

The files are comma delimited and line sequential. Therefore, a basic COBOL program can be written to format the data into a usable format.

For example, to test sorting, I downloaded a real estate file that contained the fields: street, city, zip, state,
beds, baths, sq__ft, type, sale_date, price, latitude, longitude.

The following program allowed me to turn the comma delimited file into a formated COBOL sequential file:

 

       program-id. Program1 as "Program1".

       environment division.
       configuration section.

       input-output section.
       file-control.
           select infile assign to "realestate.csv"
              organization is line sequential.

           select outfile assign to "realestate.dat".

       data division.
       file section.
       fd  infile.
       01  in-rec  pic x(120).

       fd  outfile.
       01  out-rec pic x(120).

       working-storage section.
       01 rec-size  pic 9(5).
       01 ws-eof    pic x value "n".
          88 at-end  value "y".
       01 ws-rec.
           05 out-address   pic x(36).
           05 out-city      pic x(16).
           05 out-zip       pic 9(05).
           05 out-state     pic x(02).
           05 out-bedrm     pic x(01).
           05 out-bath      pic x(01).
           05 out-sqft      pic 9(05).
           05 out-type      pic x(12).
           05 out-saledate  pic x(24).
           05 out-price     pic 9(6).
           05 out-lat       pic 99V9(6).
           05 out-long      pic s9(3)V9(4).

       procedure division.
       main-para.
           open input infile.
           open output outfile.
           read infile
               at end set at-end to true.
           perform 100-read
              until at-end.
           close infile, outfile.
           goback.

       100-read.
           read infile
               at end set at-end to true
                  go to 100-exit
               not at end
                   unstring in-rec       delimited by ","
                       into out-address
                            out-city
                            out-zip
                            out-state
                            out-bedrm
                            out-bath
                            out-sqft
                            out-type
                            out-saledate
                            out-price
                            out-lat
                            out-long
                    end-unstring
           end-read.

           write out-rec from ws-rec.
       100-exit.
           exit.
       end program Program1.
Comment List
Related
Recommended