fUnit 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/INSTALL +19 -0
- data/LICENSE +262 -0
- data/README +3 -0
- data/bin/funit +8 -0
- data/docs/HISTORY +20 -0
- data/docs/spiel/slides.tex +153 -0
- data/docs/why/F90testRun +43 -0
- data/docs/why/F90testRun.ps +548 -0
- data/docs/why/FluxFunctions.f90 +36 -0
- data/docs/why/FluxFunctions.f90.ps +526 -0
- data/docs/why/FluxFunctionsTS.f90 +324 -0
- data/docs/why/FluxFunctionsTS.f90.ps +1048 -0
- data/docs/why/FluxFunctionsTS.ftk +49 -0
- data/docs/why/FluxFunctionsTS.ftk.ps +554 -0
- data/docs/why/GasModel.f90 +19 -0
- data/docs/why/GasModel.f90.ps +496 -0
- data/docs/why/GasModelTS+SRC +44 -0
- data/docs/why/GasModelTS+SRC.ps +532 -0
- data/docs/why/GasModelTS.f90 +168 -0
- data/docs/why/GasModelTS.f90.ps +760 -0
- data/docs/why/GasModelTS.ftk +22 -0
- data/docs/why/GasModelTS.ftk.ps +507 -0
- data/docs/why/TestRunner.f90 +28 -0
- data/docs/why/TestRunner.f90.ps +511 -0
- data/docs/why/land2 +2 -0
- data/docs/why/landscape +2 -0
- data/docs/why/portrait +2 -0
- data/lib/clean +1 -0
- data/lib/fortran_deps.rb +109 -0
- data/lib/funit/assertions.rb +72 -0
- data/lib/funit/functions.rb +124 -0
- data/lib/funit/test_suite.rb +180 -0
- data/lib/funit.rb +25 -0
- data/lib/mklinks +5 -0
- data/tests/tc_compile.rb +30 -0
- data/tests/tc_fortran_deps.rb +167 -0
- data/tests/tc_funit.rb +104 -0
- data/tests/tc_test_suite.rb +82 -0
- data/tests/ts_funit.rb +6 -0
- metadata +85 -0
@@ -0,0 +1,532 @@
|
|
1
|
+
%!PS-Adobe-3.0
|
2
|
+
%%BoundingBox: 24 24 588 768
|
3
|
+
%%Title: Enscript Output
|
4
|
+
%%For: Bil Kleb
|
5
|
+
%%Creator: GNU enscript 1.6.1
|
6
|
+
%%CreationDate: Wed Nov 7 08:52:58 2001
|
7
|
+
%%Orientation: Landscape
|
8
|
+
%%Pages: (atend)
|
9
|
+
%%DocumentMedia: Letter 612 792 0 () ()
|
10
|
+
%%DocumentNeededResources: (atend)
|
11
|
+
%%EndComments
|
12
|
+
%%BeginProlog
|
13
|
+
%%BeginResource: procset Enscript-Prolog 1.6 1
|
14
|
+
%
|
15
|
+
% Procedures.
|
16
|
+
%
|
17
|
+
|
18
|
+
/_S { % save current state
|
19
|
+
/_s save def
|
20
|
+
} def
|
21
|
+
/_R { % restore from saved state
|
22
|
+
_s restore
|
23
|
+
} def
|
24
|
+
|
25
|
+
/S { % showpage protecting gstate
|
26
|
+
gsave
|
27
|
+
showpage
|
28
|
+
grestore
|
29
|
+
} bind def
|
30
|
+
|
31
|
+
/MF { % fontname newfontname -> - make a new encoded font
|
32
|
+
/newfontname exch def
|
33
|
+
/fontname exch def
|
34
|
+
|
35
|
+
/fontdict fontname findfont def
|
36
|
+
/newfont fontdict maxlength dict def
|
37
|
+
|
38
|
+
fontdict {
|
39
|
+
exch
|
40
|
+
dup /FID eq {
|
41
|
+
% skip FID pair
|
42
|
+
pop pop
|
43
|
+
} {
|
44
|
+
% copy to the new font dictionary
|
45
|
+
exch newfont 3 1 roll put
|
46
|
+
} ifelse
|
47
|
+
} forall
|
48
|
+
|
49
|
+
newfont /FontName newfontname put
|
50
|
+
|
51
|
+
% insert only valid encoding vectors
|
52
|
+
encoding_vector length 256 eq {
|
53
|
+
newfont /Encoding encoding_vector put
|
54
|
+
} if
|
55
|
+
|
56
|
+
newfontname newfont definefont pop
|
57
|
+
} def
|
58
|
+
|
59
|
+
/SF { % fontname width height -> - set a new font
|
60
|
+
/height exch def
|
61
|
+
/width exch def
|
62
|
+
|
63
|
+
findfont
|
64
|
+
[width 0 0 height 0 0] makefont setfont
|
65
|
+
} def
|
66
|
+
|
67
|
+
/SUF { % fontname width height -> - set a new user font
|
68
|
+
/height exch def
|
69
|
+
/width exch def
|
70
|
+
|
71
|
+
/F-gs-user-font MF
|
72
|
+
/F-gs-user-font width height SF
|
73
|
+
} def
|
74
|
+
|
75
|
+
/M {moveto} bind def
|
76
|
+
/s {show} bind def
|
77
|
+
|
78
|
+
/Box { % x y w h -> - define box path
|
79
|
+
/d_h exch def /d_w exch def /d_y exch def /d_x exch def
|
80
|
+
d_x d_y moveto
|
81
|
+
d_w 0 rlineto
|
82
|
+
0 d_h rlineto
|
83
|
+
d_w neg 0 rlineto
|
84
|
+
closepath
|
85
|
+
} def
|
86
|
+
|
87
|
+
/bgs { % x y height blskip gray str -> - show string with bg color
|
88
|
+
/str exch def
|
89
|
+
/gray exch def
|
90
|
+
/blskip exch def
|
91
|
+
/height exch def
|
92
|
+
/y exch def
|
93
|
+
/x exch def
|
94
|
+
|
95
|
+
gsave
|
96
|
+
x y blskip sub str stringwidth pop height Box
|
97
|
+
gray setgray
|
98
|
+
fill
|
99
|
+
grestore
|
100
|
+
x y M str s
|
101
|
+
} def
|
102
|
+
|
103
|
+
% Highlight bars.
|
104
|
+
/highlight_bars { % nlines lineheight output_y_margin gray -> -
|
105
|
+
gsave
|
106
|
+
setgray
|
107
|
+
/ymarg exch def
|
108
|
+
/lineheight exch def
|
109
|
+
/nlines exch def
|
110
|
+
|
111
|
+
% This 2 is just a magic number to sync highlight lines to text.
|
112
|
+
0 d_header_y ymarg sub 2 sub translate
|
113
|
+
|
114
|
+
/cw d_output_w cols div def
|
115
|
+
/nrows d_output_h ymarg 2 mul sub lineheight div cvi def
|
116
|
+
|
117
|
+
% for each column
|
118
|
+
0 1 cols 1 sub {
|
119
|
+
cw mul /xp exch def
|
120
|
+
|
121
|
+
% for each rows
|
122
|
+
0 1 nrows 1 sub {
|
123
|
+
/rn exch def
|
124
|
+
rn lineheight mul neg /yp exch def
|
125
|
+
rn nlines idiv 2 mod 0 eq {
|
126
|
+
% Draw highlight bar. 4 is just a magic indentation.
|
127
|
+
xp 4 add yp cw 8 sub lineheight neg Box fill
|
128
|
+
} if
|
129
|
+
} for
|
130
|
+
} for
|
131
|
+
|
132
|
+
grestore
|
133
|
+
} def
|
134
|
+
|
135
|
+
% Line highlight bar.
|
136
|
+
/line_highlight { % x y width height gray -> -
|
137
|
+
gsave
|
138
|
+
/gray exch def
|
139
|
+
Box gray setgray fill
|
140
|
+
grestore
|
141
|
+
} def
|
142
|
+
|
143
|
+
% Column separator lines.
|
144
|
+
/column_lines {
|
145
|
+
gsave
|
146
|
+
.1 setlinewidth
|
147
|
+
0 d_footer_h translate
|
148
|
+
/cw d_output_w cols div def
|
149
|
+
1 1 cols 1 sub {
|
150
|
+
cw mul 0 moveto
|
151
|
+
0 d_output_h rlineto stroke
|
152
|
+
} for
|
153
|
+
grestore
|
154
|
+
} def
|
155
|
+
|
156
|
+
% Column borders.
|
157
|
+
/column_borders {
|
158
|
+
gsave
|
159
|
+
.1 setlinewidth
|
160
|
+
0 d_footer_h moveto
|
161
|
+
0 d_output_h rlineto
|
162
|
+
d_output_w 0 rlineto
|
163
|
+
0 d_output_h neg rlineto
|
164
|
+
closepath stroke
|
165
|
+
grestore
|
166
|
+
} def
|
167
|
+
|
168
|
+
% Do the actual underlay drawing
|
169
|
+
/draw_underlay {
|
170
|
+
ul_style 0 eq {
|
171
|
+
ul_str true charpath stroke
|
172
|
+
} {
|
173
|
+
ul_str show
|
174
|
+
} ifelse
|
175
|
+
} def
|
176
|
+
|
177
|
+
% Underlay
|
178
|
+
/underlay { % - -> -
|
179
|
+
gsave
|
180
|
+
0 d_page_h translate
|
181
|
+
d_page_h neg d_page_w atan rotate
|
182
|
+
|
183
|
+
ul_gray setgray
|
184
|
+
ul_font setfont
|
185
|
+
/dw d_page_h dup mul d_page_w dup mul add sqrt def
|
186
|
+
ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto
|
187
|
+
draw_underlay
|
188
|
+
grestore
|
189
|
+
} def
|
190
|
+
|
191
|
+
/user_underlay { % - -> -
|
192
|
+
gsave
|
193
|
+
ul_x ul_y translate
|
194
|
+
ul_angle rotate
|
195
|
+
ul_gray setgray
|
196
|
+
ul_font setfont
|
197
|
+
0 0 ul_h_ptsize 2 div sub moveto
|
198
|
+
draw_underlay
|
199
|
+
grestore
|
200
|
+
} def
|
201
|
+
|
202
|
+
% Page prefeed
|
203
|
+
/page_prefeed { % bool -> -
|
204
|
+
statusdict /prefeed known {
|
205
|
+
statusdict exch /prefeed exch put
|
206
|
+
} {
|
207
|
+
pop
|
208
|
+
} ifelse
|
209
|
+
} def
|
210
|
+
|
211
|
+
% Wrapped line markers
|
212
|
+
/wrapped_line_mark { % x y charwith charheight type -> -
|
213
|
+
/type exch def
|
214
|
+
/h exch def
|
215
|
+
/w exch def
|
216
|
+
/y exch def
|
217
|
+
/x exch def
|
218
|
+
|
219
|
+
type 2 eq {
|
220
|
+
% Black boxes (like TeX does)
|
221
|
+
gsave
|
222
|
+
0 setlinewidth
|
223
|
+
x w 4 div add y M
|
224
|
+
0 h rlineto w 2 div 0 rlineto 0 h neg rlineto
|
225
|
+
closepath fill
|
226
|
+
grestore
|
227
|
+
} {
|
228
|
+
type 3 eq {
|
229
|
+
% Small arrows
|
230
|
+
gsave
|
231
|
+
.2 setlinewidth
|
232
|
+
x w 2 div add y h 2 div add M
|
233
|
+
w 4 div 0 rlineto
|
234
|
+
x w 4 div add y lineto stroke
|
235
|
+
|
236
|
+
x w 4 div add w 8 div add y h 4 div add M
|
237
|
+
x w 4 div add y lineto
|
238
|
+
w 4 div h 8 div rlineto stroke
|
239
|
+
grestore
|
240
|
+
} {
|
241
|
+
% do nothing
|
242
|
+
} ifelse
|
243
|
+
} ifelse
|
244
|
+
} def
|
245
|
+
|
246
|
+
% EPSF import.
|
247
|
+
|
248
|
+
/BeginEPSF {
|
249
|
+
/b4_Inc_state save def % Save state for cleanup
|
250
|
+
/dict_count countdictstack def % Count objects on dict stack
|
251
|
+
/op_count count 1 sub def % Count objects on operand stack
|
252
|
+
userdict begin
|
253
|
+
/showpage { } def
|
254
|
+
0 setgray 0 setlinecap
|
255
|
+
1 setlinewidth 0 setlinejoin
|
256
|
+
10 setmiterlimit [ ] 0 setdash newpath
|
257
|
+
/languagelevel where {
|
258
|
+
pop languagelevel
|
259
|
+
1 ne {
|
260
|
+
false setstrokeadjust false setoverprint
|
261
|
+
} if
|
262
|
+
} if
|
263
|
+
} bind def
|
264
|
+
|
265
|
+
/EndEPSF {
|
266
|
+
count op_count sub { pos } repeat % Clean up stacks
|
267
|
+
countdictstack dict_count sub { end } repeat
|
268
|
+
b4_Inc_state restore
|
269
|
+
} bind def
|
270
|
+
|
271
|
+
% Check PostScript language level.
|
272
|
+
/languagelevel where {
|
273
|
+
pop /gs_languagelevel languagelevel def
|
274
|
+
} {
|
275
|
+
/gs_languagelevel 1 def
|
276
|
+
} ifelse
|
277
|
+
%%EndResource
|
278
|
+
%%BeginResource: procset Enscript-Encoding-88591 1.6 1
|
279
|
+
/encoding_vector [
|
280
|
+
/.notdef /.notdef /.notdef /.notdef
|
281
|
+
/.notdef /.notdef /.notdef /.notdef
|
282
|
+
/.notdef /.notdef /.notdef /.notdef
|
283
|
+
/.notdef /.notdef /.notdef /.notdef
|
284
|
+
/.notdef /.notdef /.notdef /.notdef
|
285
|
+
/.notdef /.notdef /.notdef /.notdef
|
286
|
+
/.notdef /.notdef /.notdef /.notdef
|
287
|
+
/.notdef /.notdef /.notdef /.notdef
|
288
|
+
/space /exclam /quotedbl /numbersign
|
289
|
+
/dollar /percent /ampersand /quoteright
|
290
|
+
/parenleft /parenright /asterisk /plus
|
291
|
+
/comma /hyphen /period /slash
|
292
|
+
/zero /one /two /three
|
293
|
+
/four /five /six /seven
|
294
|
+
/eight /nine /colon /semicolon
|
295
|
+
/less /equal /greater /question
|
296
|
+
/at /A /B /C
|
297
|
+
/D /E /F /G
|
298
|
+
/H /I /J /K
|
299
|
+
/L /M /N /O
|
300
|
+
/P /Q /R /S
|
301
|
+
/T /U /V /W
|
302
|
+
/X /Y /Z /bracketleft
|
303
|
+
/backslash /bracketright /asciicircum /underscore
|
304
|
+
/quoteleft /a /b /c
|
305
|
+
/d /e /f /g
|
306
|
+
/h /i /j /k
|
307
|
+
/l /m /n /o
|
308
|
+
/p /q /r /s
|
309
|
+
/t /u /v /w
|
310
|
+
/x /y /z /braceleft
|
311
|
+
/bar /braceright /tilde /.notdef
|
312
|
+
/.notdef /.notdef /.notdef /.notdef
|
313
|
+
/.notdef /.notdef /.notdef /.notdef
|
314
|
+
/.notdef /.notdef /.notdef /.notdef
|
315
|
+
/.notdef /.notdef /.notdef /.notdef
|
316
|
+
/.notdef /.notdef /.notdef /.notdef
|
317
|
+
/.notdef /.notdef /.notdef /.notdef
|
318
|
+
/.notdef /.notdef /.notdef /.notdef
|
319
|
+
/.notdef /.notdef /.notdef /.notdef
|
320
|
+
/space /exclamdown /cent /sterling
|
321
|
+
/currency /yen /brokenbar /section
|
322
|
+
/dieresis /copyright /ordfeminine /guillemotleft
|
323
|
+
/logicalnot /hyphen /registered /macron
|
324
|
+
/degree /plusminus /twosuperior /threesuperior
|
325
|
+
/acute /mu /paragraph /bullet
|
326
|
+
/cedilla /onesuperior /ordmasculine /guillemotright
|
327
|
+
/onequarter /onehalf /threequarters /questiondown
|
328
|
+
/Agrave /Aacute /Acircumflex /Atilde
|
329
|
+
/Adieresis /Aring /AE /Ccedilla
|
330
|
+
/Egrave /Eacute /Ecircumflex /Edieresis
|
331
|
+
/Igrave /Iacute /Icircumflex /Idieresis
|
332
|
+
/Eth /Ntilde /Ograve /Oacute
|
333
|
+
/Ocircumflex /Otilde /Odieresis /multiply
|
334
|
+
/Oslash /Ugrave /Uacute /Ucircumflex
|
335
|
+
/Udieresis /Yacute /Thorn /germandbls
|
336
|
+
/agrave /aacute /acircumflex /atilde
|
337
|
+
/adieresis /aring /ae /ccedilla
|
338
|
+
/egrave /eacute /ecircumflex /edieresis
|
339
|
+
/igrave /iacute /icircumflex /idieresis
|
340
|
+
/eth /ntilde /ograve /oacute
|
341
|
+
/ocircumflex /otilde /odieresis /divide
|
342
|
+
/oslash /ugrave /uacute /ucircumflex
|
343
|
+
/udieresis /yacute /thorn /ydieresis
|
344
|
+
] def
|
345
|
+
%%EndResource
|
346
|
+
%%EndProlog
|
347
|
+
%%BeginSetup
|
348
|
+
%%IncludeResource: font Times-Roman
|
349
|
+
%%IncludeResource: font Courier-Bold
|
350
|
+
/HFpt_w 10 def
|
351
|
+
/HFpt_h 10 def
|
352
|
+
/Courier-Bold /HF-gs-font MF
|
353
|
+
/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def
|
354
|
+
/Times-Roman /F-gs-font MF
|
355
|
+
/F-gs-font 14 14 SF
|
356
|
+
/#copies 1 def
|
357
|
+
% Pagedevice definitions:
|
358
|
+
gs_languagelevel 1 gt {
|
359
|
+
<<
|
360
|
+
/PageSize [612 792]
|
361
|
+
>> setpagedevice
|
362
|
+
} if
|
363
|
+
%%BeginResource: procset Enscript-Header-enscript 1.6 1
|
364
|
+
%%IncludeResource: font Times-Bold
|
365
|
+
|
366
|
+
% Fonts.
|
367
|
+
/Times-Bold /HeaderFont-Bold MF
|
368
|
+
/HeaderDateF /HeaderFont-Bold findfont 12 scalefont def
|
369
|
+
|
370
|
+
/Times-Roman /HeaderFont-Times MF
|
371
|
+
/HeaderHDRF /HeaderFont-Times findfont 14 scalefont def
|
372
|
+
|
373
|
+
/HeaderPageNumF /Helvetica-Bold findfont 28.8 scalefont def
|
374
|
+
|
375
|
+
/do_header { % print enscript header
|
376
|
+
gsave
|
377
|
+
d_header_x d_header_y translate
|
378
|
+
|
379
|
+
% light bar
|
380
|
+
0 0 d_header_w d_header_h 2 div Box
|
381
|
+
.95 setgray fill
|
382
|
+
|
383
|
+
% dark gray boxes
|
384
|
+
/dbw d_header_h 2 mul def % dark box width
|
385
|
+
/dbc .7 def % dark box color
|
386
|
+
|
387
|
+
% left dark box.
|
388
|
+
0 0 dbw d_header_h Box
|
389
|
+
dbc setgray fill
|
390
|
+
|
391
|
+
0 setgray
|
392
|
+
HeaderDateF setfont
|
393
|
+
moddatestr dup stringwidth pop dbw exch sub 2 div
|
394
|
+
d_header_h 2 div 2 add moveto show
|
395
|
+
modtimestr dup stringwidth pop dbw exch sub 2 div
|
396
|
+
d_header_h 5 div moveto show
|
397
|
+
|
398
|
+
% right dark box
|
399
|
+
d_header_w dbw sub 0 dbw d_header_h Box
|
400
|
+
dbc setgray fill
|
401
|
+
|
402
|
+
HeaderPageNumF setfont
|
403
|
+
1 setgray
|
404
|
+
pagenumstr dup
|
405
|
+
stringwidth pop dbw exch sub 2 div d_header_w dbw sub add
|
406
|
+
d_header_h .2 mul moveto show
|
407
|
+
|
408
|
+
% filename
|
409
|
+
0 setgray
|
410
|
+
HeaderHDRF setfont
|
411
|
+
d_header_w fname stringwidth pop sub 2 div d_header_h 8 div moveto
|
412
|
+
fname show
|
413
|
+
|
414
|
+
% user supplied header string.
|
415
|
+
user_header_p {
|
416
|
+
/h d_header_h 8 div 5 mul def
|
417
|
+
|
418
|
+
% Implement strict enscript compatibility.
|
419
|
+
user_header_center_str () eq user_header_right_str () eq and {
|
420
|
+
d_header_w user_header_left_str stringwidth pop sub 2 div
|
421
|
+
h moveto user_header_left_str show
|
422
|
+
} {
|
423
|
+
dbw 5 add h moveto user_header_left_str show
|
424
|
+
|
425
|
+
d_header_w user_header_center_str stringwidth pop sub 2 div
|
426
|
+
h moveto user_header_center_str show
|
427
|
+
|
428
|
+
d_header_w dbw sub 5 sub user_header_right_str stringwidth pop
|
429
|
+
sub h moveto user_header_right_str show
|
430
|
+
} ifelse
|
431
|
+
} if
|
432
|
+
|
433
|
+
grestore
|
434
|
+
} def
|
435
|
+
%%EndResource
|
436
|
+
/d_page_w 744 def
|
437
|
+
/d_page_h 564 def
|
438
|
+
/d_header_x 0 def
|
439
|
+
/d_header_y 528 def
|
440
|
+
/d_header_w 744 def
|
441
|
+
/d_header_h 36 def
|
442
|
+
/d_footer_x 0 def
|
443
|
+
/d_footer_y 0 def
|
444
|
+
/d_footer_w 744 def
|
445
|
+
/d_footer_h 0 def
|
446
|
+
/d_output_w 744 def
|
447
|
+
/d_output_h 528 def
|
448
|
+
/cols 2 def
|
449
|
+
%%EndSetup
|
450
|
+
%%Page: (1) 1
|
451
|
+
%%BeginPageSetup
|
452
|
+
_S
|
453
|
+
90 rotate
|
454
|
+
24 -588 translate
|
455
|
+
/pagenum 1 def
|
456
|
+
/fname (GasModelTS+SRC) def
|
457
|
+
/fdir () def
|
458
|
+
/ftail (GasModelTS+SRC) def
|
459
|
+
% User defined strings:
|
460
|
+
/pagenumstr (1) def
|
461
|
+
/moddatestr (11/07/01) def
|
462
|
+
/modtimestr (08:52:57) def
|
463
|
+
/user_header_p false def
|
464
|
+
%%EndPageSetup
|
465
|
+
column_lines
|
466
|
+
do_header
|
467
|
+
5 481 M
|
468
|
+
(! $Id: GasModelTS+SRC.ps 112 2006-04-05 11:23:45Z kleb $) s
|
469
|
+
5 451 M
|
470
|
+
( real :: Pressure, Density, Energy) s
|
471
|
+
5 421 M
|
472
|
+
(beginTest PerfectPZeroed) s
|
473
|
+
5 406 M
|
474
|
+
( real, parameter :: zero = 0) s
|
475
|
+
5 391 M
|
476
|
+
( call PerfectP\( zero, zero, Pressure\)) s
|
477
|
+
5 376 M
|
478
|
+
( IsRealEqual\( Pressure, 0 \)) s
|
479
|
+
5 361 M
|
480
|
+
( IsEqualWithin\( Pressure, 0, 0.0000000001 \)) s
|
481
|
+
5 346 M
|
482
|
+
(endTest) s
|
483
|
+
5 316 M
|
484
|
+
(beginTest Warbler) s
|
485
|
+
5 301 M
|
486
|
+
(endTest) s
|
487
|
+
5 271 M
|
488
|
+
(beginTest PerfectPKnown) s
|
489
|
+
5 256 M
|
490
|
+
( real :: Density = 1) s
|
491
|
+
5 241 M
|
492
|
+
( Energy = 1) s
|
493
|
+
5 226 M
|
494
|
+
( call PerfectP\( Density, Energy, Pressure \)) s
|
495
|
+
5 211 M
|
496
|
+
( IsRealEqual\( Pressure, 0.4 \)) s
|
497
|
+
5 196 M
|
498
|
+
( IsTrue\( Pressure .gt. 0 \)) s
|
499
|
+
5 181 M
|
500
|
+
( IsFalse\( Pressure .lt. 0 \)) s
|
501
|
+
5 166 M
|
502
|
+
(endTest) s
|
503
|
+
377 481 M
|
504
|
+
(! $Id: GasModelTS+SRC.ps 112 2006-04-05 11:23:45Z kleb $) s
|
505
|
+
377 451 M
|
506
|
+
(module GasModel) s
|
507
|
+
377 421 M
|
508
|
+
( implicit none) s
|
509
|
+
377 391 M
|
510
|
+
( real, parameter :: Gamma = 1.4) s
|
511
|
+
377 361 M
|
512
|
+
(contains) s
|
513
|
+
377 331 M
|
514
|
+
( subroutine PerfectP \(Density, Energy, Pressure\)) s
|
515
|
+
377 316 M
|
516
|
+
( real, intent\(in\) :: Density ) s
|
517
|
+
377 301 M
|
518
|
+
( real, intent\(in\) :: Energy) s
|
519
|
+
377 286 M
|
520
|
+
( real, intent\(out\) :: Pressure) s
|
521
|
+
377 271 M
|
522
|
+
( Pressure = Density * Energy * \( Gamma - 1.0 \)) s
|
523
|
+
377 256 M
|
524
|
+
( end subroutine PerfectP) s
|
525
|
+
377 226 M
|
526
|
+
(end module GasModel) s
|
527
|
+
_R
|
528
|
+
S
|
529
|
+
%%Trailer
|
530
|
+
%%Pages: 1
|
531
|
+
%%DocumentNeededResources: font Times-Roman Courier-Bold Times-Bold
|
532
|
+
%%EOF
|
@@ -0,0 +1,168 @@
|
|
1
|
+
! GasModelTS.f90 - a Fortran mobility test suite for GasModel.f90
|
2
|
+
!
|
3
|
+
! [dynamically generated from GasModelTS.ftk
|
4
|
+
! by FTKtest Ruby script Wed Nov 07 07:53:00 EST 2001]
|
5
|
+
|
6
|
+
module GasModelTS
|
7
|
+
|
8
|
+
use GasModel
|
9
|
+
|
10
|
+
implicit none
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
public :: TSGasModel
|
15
|
+
|
16
|
+
logical :: noAssertFailed
|
17
|
+
|
18
|
+
integer :: numTests = 0
|
19
|
+
integer :: numAsserts = 0
|
20
|
+
integer :: numAssertsTested = 0
|
21
|
+
integer :: numFailures = 0
|
22
|
+
|
23
|
+
! $Id: GasModelTS.f90 112 2006-04-05 11:23:45Z kleb $
|
24
|
+
|
25
|
+
real :: Pressure, Density, Energy
|
26
|
+
|
27
|
+
contains
|
28
|
+
|
29
|
+
subroutine TestPerfectPZeroed
|
30
|
+
|
31
|
+
real, parameter :: zero = 0
|
32
|
+
call PerfectP( zero, zero, Pressure)
|
33
|
+
|
34
|
+
! IsRealEqual assertion
|
35
|
+
numAsserts = numAsserts + 1
|
36
|
+
if (noAssertFailed) then
|
37
|
+
if (.not.( 0 +2*spacing(real( 0 )).ge. Pressure &
|
38
|
+
.and. 0 -2*spacing(real( 0 )).le. Pressure)) then
|
39
|
+
print *, " FAILURE: IsRealEqual in test PerfectPZeroed, &
|
40
|
+
&line 8 of GasModelTS.ftk"
|
41
|
+
print *, " ", " Pressure is not", 0 ,"within",2*spacing(real( 0 ))
|
42
|
+
noAssertFailed = .false.
|
43
|
+
numFailures = numFailures + 1
|
44
|
+
else
|
45
|
+
numAssertsTested = numAssertsTested + 1
|
46
|
+
endif
|
47
|
+
endif
|
48
|
+
|
49
|
+
! IsEqualWithin assertion
|
50
|
+
numAsserts = numAsserts + 1
|
51
|
+
if (noAssertFailed) then
|
52
|
+
if (.not.( 0+ 0.0000000001 .ge. Pressure &
|
53
|
+
.and. 0- 0.0000000001 .le. Pressure)) then
|
54
|
+
print *, " FAILURE: IsEqualWithin in test PerfectPZeroed, &
|
55
|
+
&line 9 of GasModelTS.ftk"
|
56
|
+
print *, " ", " Pressure is not", 0,"within", 0.0000000001
|
57
|
+
noAssertFailed = .false.
|
58
|
+
numFailures = numFailures + 1
|
59
|
+
else
|
60
|
+
numAssertsTested = numAssertsTested + 1
|
61
|
+
endif
|
62
|
+
endif
|
63
|
+
|
64
|
+
numTests = numTests + 1
|
65
|
+
|
66
|
+
end subroutine TestPerfectPZeroed
|
67
|
+
|
68
|
+
|
69
|
+
subroutine TestWarbler
|
70
|
+
|
71
|
+
|
72
|
+
numTests = numTests + 1
|
73
|
+
|
74
|
+
end subroutine TestWarbler
|
75
|
+
|
76
|
+
|
77
|
+
subroutine TestPerfectPKnown
|
78
|
+
|
79
|
+
real :: Density = 1
|
80
|
+
Energy = 1
|
81
|
+
call PerfectP( Density, Energy, Pressure )
|
82
|
+
|
83
|
+
! IsRealEqual assertion
|
84
|
+
numAsserts = numAsserts + 1
|
85
|
+
if (noAssertFailed) then
|
86
|
+
if (.not.( 0.4 +2*spacing(real( 0.4 )).ge. Pressure &
|
87
|
+
.and. 0.4 -2*spacing(real( 0.4 )).le. Pressure)) then
|
88
|
+
print *, " FAILURE: IsRealEqual in test PerfectPKnown, &
|
89
|
+
&line 19 of GasModelTS.ftk"
|
90
|
+
print *, " ", " Pressure is not", 0.4 ,"within",2*spacing(real( 0.4 ))
|
91
|
+
noAssertFailed = .false.
|
92
|
+
numFailures = numFailures + 1
|
93
|
+
else
|
94
|
+
numAssertsTested = numAssertsTested + 1
|
95
|
+
endif
|
96
|
+
endif
|
97
|
+
|
98
|
+
! IsTrue assertion
|
99
|
+
numAsserts = numAsserts + 1
|
100
|
+
if (noAssertFailed) then
|
101
|
+
if (.not.( Pressure .gt. 0 )) then
|
102
|
+
print *, " FAILURE: IsTrue in test PerfectPKnown, &
|
103
|
+
&line 20 of GasModelTS.ftk"
|
104
|
+
print *, " ", " Pressure .gt. 0 is not true"
|
105
|
+
noAssertFailed = .false.
|
106
|
+
numFailures = numFailures + 1
|
107
|
+
else
|
108
|
+
numAssertsTested = numAssertsTested + 1
|
109
|
+
endif
|
110
|
+
endif
|
111
|
+
|
112
|
+
! IsFalse assertion
|
113
|
+
numAsserts = numAsserts + 1
|
114
|
+
if (noAssertFailed) then
|
115
|
+
if ( Pressure .lt. 0 ) then
|
116
|
+
print *, " FAILURE: IsFalse in test PerfectPKnown, &
|
117
|
+
&line 21 of GasModelTS.ftk"
|
118
|
+
print *, " ", " Pressure .lt. 0 is not false"
|
119
|
+
noAssertFailed = .false.
|
120
|
+
numFailures = numFailures + 1
|
121
|
+
else
|
122
|
+
numAssertsTested = numAssertsTested + 1
|
123
|
+
endif
|
124
|
+
endif
|
125
|
+
|
126
|
+
numTests = numTests + 1
|
127
|
+
|
128
|
+
end subroutine TestPerfectPKnown
|
129
|
+
|
130
|
+
|
131
|
+
subroutine Setup
|
132
|
+
noAssertFailed = .true.
|
133
|
+
end subroutine Setup
|
134
|
+
|
135
|
+
|
136
|
+
subroutine Teardown
|
137
|
+
end subroutine Teardown
|
138
|
+
|
139
|
+
|
140
|
+
subroutine TSGasModel( nTests, nAsserts, nAssertsTested, nFailures )
|
141
|
+
|
142
|
+
integer :: nTests
|
143
|
+
integer :: nAsserts
|
144
|
+
integer :: nAssertsTested
|
145
|
+
integer :: nFailures
|
146
|
+
|
147
|
+
continue
|
148
|
+
|
149
|
+
call Setup
|
150
|
+
call TestPerfectPZeroed
|
151
|
+
call Teardown
|
152
|
+
|
153
|
+
call Setup
|
154
|
+
call TestWarbler
|
155
|
+
call Teardown
|
156
|
+
|
157
|
+
call Setup
|
158
|
+
call TestPerfectPKnown
|
159
|
+
call Teardown
|
160
|
+
|
161
|
+
nTests = numTests
|
162
|
+
nAsserts = numAsserts
|
163
|
+
nAssertsTested = numAssertsTested
|
164
|
+
nFailures = numFailures
|
165
|
+
|
166
|
+
end subroutine TSGasModel
|
167
|
+
|
168
|
+
end module GasModelTS
|