25 TYPE(csv_record) :: csv_writer, csv_reader
26 CHARACTER(len=80) :: charbuf, ccheck
27 INTEGER :: nfield, ier, icheck, clen
29 DOUBLE PRECISION :: dcheck
32 print*,
'=== Testing file_utilities module ===' 34 print*,
'Checking csv_record writing' 41 print*,
'Checking csv_record_getrecord' 42 charbuf = csv_record_getrecord(csv_writer)
43 IF (charbuf /=
'45,,Berlusconi mafioso," a''nvedi ""er pecora""",')
THEN 44 print*,
'charbuf:',trim(charbuf)
49 print*,
'Checking csv_record reading' 50 charbuf =
'45, 897.4,903.1 ,,Berlusconi mafioso," a''nvedi ""er pecora""",' 51 CALL init(csv_reader, charbuf, nfield=nfield)
52 print*,
'Checking nfield with a missing at the end' 54 print*,
'nfield:',nfield
58 print*,
'Checking csv_record_getfield integer' 61 print*,
'Error code:',ier
64 IF (icheck /= 45)
THEN 65 print*,
'icheck:',icheck
69 print*,
'Checking csv_record_getfield real' 72 print*,
'Error code:',ier
75 IF (abs(rcheck-897.4) > .1)
THEN 76 print*,
'rcheck:',rcheck
81 print*,
'Error code:',ier
84 IF (abs(dcheck-903.1) > .1)
THEN 85 print*,
'dcheck:',dcheck
89 print*,
'Checking csv_record_getfield missing integer' 92 print*,
'Error code:',ier
96 print*,
'icheck:',icheck
100 print*,
'Checking csv_record_getfield simple character' 103 print*,
'Error code:',ier
106 IF (ccheck(1:clen) /=
'Berlusconi mafioso')
THEN 107 print*,
'ccheck:',ccheck(1:clen)
111 print*,
'Checking csv_record_getfield quoted character' 114 print*,
'Error code:',ier
117 IF (ccheck(1:clen) /=
' a''nvedi "er pecora"')
THEN 118 print*,
'ccheck:',ccheck(1:clen)
122 print*,
'Checking csv_record_getfield empty character' 125 print*,
'Error code:',ier
128 IF (ccheck /=
'')
THEN 129 print*,
'ccheck:',ccheck(1:clen)
135 charbuf(len_trim(charbuf)-1:) =
' ' 136 CALL init(csv_reader, charbuf, nfield=nfield)
137 print*,
'Checking nfield' 138 IF (nfield /= 6)
THEN 139 print*,
'nfield:',nfield
143 print*,
'Checking csv_record_getfield with empty charbuf' 145 CALL init(csv_reader, charbuf, nfield=nfield)
146 print*,
'Checking nfield' 147 IF (nfield /= 1)
THEN 148 print*,
'nfield:',nfield
154 print*,
'Error code:',ier
157 IF (ccheck /=
'')
THEN 158 print*,
'ccheck:',ccheck(1:clen)
164 print*,
'Checking csv_record_getfield with one empty, quoted record' 166 CALL init(csv_reader, charbuf, nfield=nfield)
167 print*,
'Checking nfield' 168 IF (nfield /= 1)
THEN 169 print*,
'nfield:',nfield
175 print*,
'Error code:',ier
178 IF (ccheck /=
'')
THEN 179 print*,
'ccheck:',ccheck(1:clen)
185 END PROGRAM file_test
Constructor for the class csv_record.
Methods for successively adding fields to a csv_record object.
Utilities for managing files.
Methods for successively obtaining the fields of a csv_record object.
Methods for successively adding fields to a csv_record object.
Destructor for the class csv_record.
Definition of constants to be used for declaring variables of a desired type.