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