0031939: Coding - correction of spelling errors in comments [part 7]
[occt.git] / tests / gdt / presentation / end
1 # Set flag dump_file to 1 in order to regenerate script files with actual data
2 # used as reference. In this mode all tests intentionally report failure. 
3 set dump_file 0
4 ########################################################################
5 set mist 0;
6 # First
7 set x_First 0; set y_First 0; set z_First 0;
8 set mass_First 0;
9 # Second
10 set x_Second 0; set y_Second 0; set z_Second 0;
11 set mass_Second 0;
12 ###################################################################
13 set ref_Compare 0
14 set todo_msg ""
15 set todo_mask "puts \"TODO CR27235 ALL: "
16 set end_line "\" \n"
17 ##################################################################
18
19 # Read original file
20 if { [string length $filename] > 1} {
21   set path_file [locate_data_file $filename]
22   if { [catch { ReadStep D_First $path_file } catch_result] } {
23     set err_msg "Error: First - file was not read - exception "
24     puts $err_msg
25     append todo_msg $todo_mask $err_msg $end_line
26     set mist 1
27   }
28 } else {
29   set mist 1
30 }
31
32 # Get information presentations
33 if { $mist < 1} {           
34   puts ""
35   set xst [ OCC27235 D_First] 
36
37   if { [llength $xst] > 0 } {
38     regexp {Centre of mass+: +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+)} $xst full x_First y_First z_First
39     regexp {Mass+: +([-0-9.+eE]+)} $xst full mass_First
40   } else {
41       puts " GDT information was NOT provided"
42   }
43 }
44
45 if { $mist != 1 } {  
46   puts "" 
47   set result ""
48   append result [format $xst]
49 }
50
51 # Writing file
52 if { $mist < 1} {
53   puts " "
54   puts "-----------------------------WRITING FILE ------------------------------"
55   if { [catch { WriteStep D_First $imagedir/${casename}_D_First.stp } catch_result] } {
56     set err_msg "Error: First - file was not written - exception"
57     puts $err_msg
58     append todo_msg $todo_mask $err_msg $end_line
59     set mist 1
60   }
61   if { $mist < 1 } {
62     if { [catch { ReadStep D_Second $imagedir/${casename}_D_First.stp } catch_result] } {
63       set err_msg "Error: Second - file was not read - exception"
64       puts $err_msg
65       append todo_msg $todo_mask $err_msg $end_line
66       set mist 1
67     }
68   }
69 }
70
71 catch {[file delete $imagedir/${casename}_D_First.stp]}
72 if { [catch { Close D_First } catch_result] } {
73   set err_msg "Error : cannot close a document D_First - exception"
74   puts $err_msg
75 }
76
77 # Get information about translation
78 if { $mist < 1} {           
79   puts ""
80   set xst2 [ OCC27235 D_Second] 
81
82   if { [llength $xst] > 0 } {
83     regexp {Centre of mass+: +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+)} $xst2 full x_Second y_Second z_Second
84     regexp {Mass+: +([-0-9.+eE]+)} $xst2 full mass_Second
85   } else {
86       puts " GDT information was NOT provided"
87   }
88   if { [catch { Close D_Second } catch_result] } {
89     set err_msg "Error : cannot close a document D_Second - exception"
90     puts $err_msg
91   }
92 }
93
94 if { $mist != 1 } {  
95   puts "" 
96   set result2 ""
97   append result2 [format $xst2]
98 }
99
100 set err_compare_ref ""
101 # Put reference data to the test script file if option "dump" is set
102 if { $dump_file == 1 } { 
103   set fd_stream  [open $dirname/$groupname/$gridname/$casename w] 
104   puts $fd_stream "# !!!! This file is generated automatically, do not edit manually! See end script"
105   puts $fd_stream "set filename $filename"
106   if { $mist != 1 } {
107     puts $fd_stream "" 
108     puts $fd_stream "set ref_data \{"
109     puts $fd_stream $result
110     puts $fd_stream "\}"
111   }
112   close $fd_stream 
113 } elseif { $mist != 1 } {
114   puts "========================== Comparison with reference data ========"
115   puts ""
116   # Comparison of reference data with obtained result
117   set x_Ref 0; set y_Ref 0; set z_Ref 0;
118   set mass_Ref 0;
119   regexp {Centre of mass+: +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+)} $ref_data full x_Ref y_Ref z_Ref
120   regexp {Mass+: +([-0-9.+eE]+)} $ref_data full mass_Ref
121
122   if {[expr abs($x_Ref - $x_First)] > 1e-4 || [expr abs($x_Ref - $x_Second)] > 1e-4} {
123     incr ref_Compare
124     append err_compare_ref " Reference data - $x_Ref\n"
125     append err_compare_ref " Current data - $x_Second ($x_First)\n"
126     append err_compare_ref "--------------------------------------------------------------------\n"
127   }
128     
129   if {[expr abs($y_Ref - $y_First)] > 1e-4 || [expr abs($y_Ref - $y_Second)] > 1e-4} {
130     incr ref_Compare
131     append err_compare_ref " Reference data - $y_Ref\n"
132     append err_compare_ref " Current data - $y_Second ($y_First)\n"
133     append err_compare_ref "--------------------------------------------------------------------\n"
134     }
135   if {[expr abs($z_Ref - $z_First)] > 1e-4 || [expr abs($z_Ref - $z_Second)] > 1e-4} {
136     incr ref_Compare
137     append err_compare_ref " Reference data - $z_Ref\n"
138     append err_compare_ref " Current data - $z_Second ($z_First)\n"
139     append err_compare_ref "--------------------------------------------------------------------\n"
140     }
141   if {[expr abs($mass_Ref - $mass_First)] > 1e-4 || [expr abs($mass_Ref - $mass_Second)] > 1e-4} {
142     incr ref_Compare
143     append err_compare_ref " Reference data - $mass_Ref\n"
144     append err_compare_ref " Current data - $mass_Second ($mass_First)\n"
145     append err_compare_ref "--------------------------------------------------------------------\n"
146     }
147   }
148
149 if { $dump_file != 0 } {
150     puts "Error : Running in regeneration mode, comparison was not performed!"
151     if { $mist != 1 } {
152          puts "Generation of test file $groupname/$gridname/$casename successful"
153     } else {
154          puts "Generation of reference data failed"
155     }
156 } else {
157     if { $ref_Compare > 0} {
158         puts "Error : $ref_Compare differences with reference data found :\n$err_compare_ref"
159     } else {
160         puts "Comparison of current result with reference data - OK\n"
161     }    
162 }
163
164 puts "--------------------------------------------------------------------"
165 puts ""
166
167 puts "TEST COMPLETED"