Adjusting bugs group for current state of OCCT
authorapn <apn@opencascade.com>
Fri, 11 Jan 2013 11:30:11 +0000 (15:30 +0400)
committerapn <apn@opencascade.com>
Fri, 11 Jan 2013 11:30:11 +0000 (15:30 +0400)
343 files changed:
tests/bugs/caf/bug1054_1 [new file with mode: 0644]
tests/bugs/caf/bug1054_2 [new file with mode: 0644]
tests/bugs/caf/bug114
tests/bugs/caf/bug1395_1 [new file with mode: 0644]
tests/bugs/caf/bug1395_2 [new file with mode: 0644]
tests/bugs/caf/bug1454 [new file with mode: 0644]
tests/bugs/caf/bug159 [new file with mode: 0644]
tests/bugs/caf/bug1722 [new file with mode: 0644]
tests/bugs/caf/bug1724 [new file with mode: 0644]
tests/bugs/caf/bug1726 [new file with mode: 0644]
tests/bugs/caf/bug1919 [new file with mode: 0644]
tests/bugs/caf/bug2269 [new file with mode: 0644]
tests/bugs/caf/bug267_1 [new file with mode: 0644]
tests/bugs/caf/bug267_2 [new file with mode: 0644]
tests/bugs/caf/bug2932_10 [new file with mode: 0644]
tests/bugs/caf/bug2932_11 [new file with mode: 0644]
tests/bugs/caf/bug2932_12 [new file with mode: 0644]
tests/bugs/caf/bug2932_13 [new file with mode: 0644]
tests/bugs/caf/bug2932_14 [new file with mode: 0644]
tests/bugs/caf/bug2932_15 [new file with mode: 0644]
tests/bugs/caf/bug2932_16 [new file with mode: 0644]
tests/bugs/caf/bug2932_17 [new file with mode: 0644]
tests/bugs/caf/bug2932_18 [new file with mode: 0644]
tests/bugs/caf/bug2932_19 [new file with mode: 0644]
tests/bugs/caf/bug2932_20 [new file with mode: 0644]
tests/bugs/caf/bug2932_21 [new file with mode: 0644]
tests/bugs/caf/bug2932_22 [new file with mode: 0644]
tests/bugs/caf/bug2932_23 [new file with mode: 0644]
tests/bugs/caf/bug2932_24 [new file with mode: 0644]
tests/bugs/caf/bug2932_3 [new file with mode: 0644]
tests/bugs/caf/bug2932_4 [new file with mode: 0644]
tests/bugs/caf/bug2932_5 [new file with mode: 0644]
tests/bugs/caf/bug2932_6 [new file with mode: 0644]
tests/bugs/caf/bug2932_7 [new file with mode: 0644]
tests/bugs/caf/bug2932_8 [new file with mode: 0644]
tests/bugs/caf/bug2932_9 [new file with mode: 0644]
tests/bugs/caf/bug644 [new file with mode: 0644]
tests/bugs/fclasses/bug11568_3 [new file with mode: 0644]
tests/bugs/fclasses/bug11568_4 [new file with mode: 0644]
tests/bugs/fclasses/bug142 [new file with mode: 0644]
tests/bugs/fclasses/bug181_1 [new file with mode: 0644]
tests/bugs/fclasses/bug181_2 [new file with mode: 0644]
tests/bugs/fclasses/bug216 [new file with mode: 0644]
tests/bugs/fclasses/bug309 [new file with mode: 0644]
tests/bugs/fclasses/bug310 [new file with mode: 0644]
tests/bugs/fclasses/bug6143 [new file with mode: 0644]
tests/bugs/fclasses/bug983 [new file with mode: 0644]
tests/bugs/iges/bug5079 [new file with mode: 0644]
tests/bugs/iges/bug6508 [new file with mode: 0644]
tests/bugs/iges/bug663 [new file with mode: 0644]
tests/bugs/modalg/bug10160_1 [new file with mode: 0644]
tests/bugs/modalg/bug10160_10 [new file with mode: 0644]
tests/bugs/modalg/bug10160_11 [new file with mode: 0644]
tests/bugs/modalg/bug10160_12 [new file with mode: 0644]
tests/bugs/modalg/bug10160_2 [new file with mode: 0644]
tests/bugs/modalg/bug10160_3 [new file with mode: 0644]
tests/bugs/modalg/bug10160_4 [new file with mode: 0644]
tests/bugs/modalg/bug10160_5 [new file with mode: 0644]
tests/bugs/modalg/bug10160_6 [new file with mode: 0644]
tests/bugs/modalg/bug10160_7 [new file with mode: 0644]
tests/bugs/modalg/bug10160_8 [new file with mode: 0644]
tests/bugs/modalg/bug10160_9 [new file with mode: 0644]
tests/bugs/modalg/bug10232 [new file with mode: 0644]
tests/bugs/modalg/bug10435_1 [new file with mode: 0644]
tests/bugs/modalg/bug10435_2 [new file with mode: 0644]
tests/bugs/modalg/bug10605_1 [new file with mode: 0644]
tests/bugs/modalg/bug10605_2 [new file with mode: 0644]
tests/bugs/modalg/bug10605_3 [new file with mode: 0644]
tests/bugs/modalg/bug10605_4 [new file with mode: 0644]
tests/bugs/modalg/bug10605_5 [new file with mode: 0644]
tests/bugs/modalg/bug10606_1 [new file with mode: 0644]
tests/bugs/modalg/bug10606_2 [new file with mode: 0644]
tests/bugs/modalg/bug10606_3 [new file with mode: 0644]
tests/bugs/modalg/bug10606_4 [new file with mode: 0644]
tests/bugs/modalg/bug10606_5 [new file with mode: 0644]
tests/bugs/modalg/bug1077 [new file with mode: 0644]
tests/bugs/modalg/bug10842_1 [new file with mode: 0644]
tests/bugs/modalg/bug10842_2 [new file with mode: 0644]
tests/bugs/modalg/bug10842_3 [new file with mode: 0644]
tests/bugs/modalg/bug10842_4 [new file with mode: 0644]
tests/bugs/modalg/bug10842_5 [new file with mode: 0644]
tests/bugs/modalg/bug10846_1 [new file with mode: 0644]
tests/bugs/modalg/bug10846_2 [new file with mode: 0644]
tests/bugs/modalg/bug10846_3 [new file with mode: 0644]
tests/bugs/modalg/bug10846_4 [new file with mode: 0644]
tests/bugs/modalg/bug10846_5 [new file with mode: 0644]
tests/bugs/modalg/bug12213 [new file with mode: 0644]
tests/bugs/modalg/bug12257 [new file with mode: 0644]
tests/bugs/modalg/bug1226 [new file with mode: 0644]
tests/bugs/modalg/bug1243_1 [new file with mode: 0644]
tests/bugs/modalg/bug1243_2 [new file with mode: 0644]
tests/bugs/modalg/bug1255 [new file with mode: 0644]
tests/bugs/modalg/bug1255_1 [new file with mode: 0644]
tests/bugs/modalg/bug1360 [new file with mode: 0644]
tests/bugs/modalg/bug1456 [new file with mode: 0644]
tests/bugs/modalg/bug1477_1 [new file with mode: 0644]
tests/bugs/modalg/bug1477_10 [new file with mode: 0644]
tests/bugs/modalg/bug1477_11 [new file with mode: 0644]
tests/bugs/modalg/bug1477_12 [new file with mode: 0644]
tests/bugs/modalg/bug1477_2 [new file with mode: 0644]
tests/bugs/modalg/bug1477_3 [new file with mode: 0644]
tests/bugs/modalg/bug1477_4 [new file with mode: 0644]
tests/bugs/modalg/bug1477_5 [new file with mode: 0644]
tests/bugs/modalg/bug1477_6 [new file with mode: 0644]
tests/bugs/modalg/bug1477_7 [new file with mode: 0644]
tests/bugs/modalg/bug1477_8 [new file with mode: 0644]
tests/bugs/modalg/bug1477_9 [new file with mode: 0644]
tests/bugs/modalg/bug165_4 [new file with mode: 0644]
tests/bugs/modalg/bug165_5 [new file with mode: 0644]
tests/bugs/modalg/bug165_6 [new file with mode: 0644]
tests/bugs/modalg/bug165_7 [new file with mode: 0644]
tests/bugs/modalg/bug2083_1 [new file with mode: 0644]
tests/bugs/modalg/bug2083_2 [new file with mode: 0644]
tests/bugs/modalg/bug2083_3 [new file with mode: 0644]
tests/bugs/modalg/bug2083_4 [new file with mode: 0644]
tests/bugs/modalg/bug2172_1 [new file with mode: 0644]
tests/bugs/modalg/bug2172_2 [new file with mode: 0644]
tests/bugs/modalg/bug2172_3 [new file with mode: 0644]
tests/bugs/modalg/bug2172_4 [new file with mode: 0644]
tests/bugs/modalg/bug260 [new file with mode: 0644]
tests/bugs/modalg/bug263 [new file with mode: 0644]
tests/bugs/modalg/bug264_12 [new file with mode: 0644]
tests/bugs/modalg/bug2785_1 [new file with mode: 0644]
tests/bugs/modalg/bug2785_2 [new file with mode: 0644]
tests/bugs/modalg/bug2986_1 [new file with mode: 0644]
tests/bugs/modalg/bug2986_2 [new file with mode: 0644]
tests/bugs/modalg/bug369 [new file with mode: 0644]
tests/bugs/modalg/bug400 [new file with mode: 0644]
tests/bugs/modalg/bug405 [new file with mode: 0644]
tests/bugs/modalg/bug426_1 [new file with mode: 0644]
tests/bugs/modalg/bug434 [new file with mode: 0644]
tests/bugs/modalg/bug435 [new file with mode: 0644]
tests/bugs/modalg/bug5157_1 [new file with mode: 0644]
tests/bugs/modalg/bug5157_2 [new file with mode: 0644]
tests/bugs/modalg/bug570 [new file with mode: 0644]
tests/bugs/modalg/bug5729 [new file with mode: 0644]
tests/bugs/modalg/bug578_1 [new file with mode: 0644]
tests/bugs/modalg/bug578_2 [new file with mode: 0644]
tests/bugs/modalg/bug5805_1 [new file with mode: 0644]
tests/bugs/modalg/bug5805_2 [new file with mode: 0644]
tests/bugs/modalg/bug5805_3 [new file with mode: 0644]
tests/bugs/modalg/bug5805_4 [new file with mode: 0644]
tests/bugs/modalg/bug5805_5 [new file with mode: 0644]
tests/bugs/modalg/bug5805_6 [new file with mode: 0644]
tests/bugs/modalg/bug5806 [new file with mode: 0644]
tests/bugs/modalg/bug6063 [new file with mode: 0644]
tests/bugs/modalg/bug6063_1 [new file with mode: 0644]
tests/bugs/modalg/bug606_1 [new file with mode: 0644]
tests/bugs/modalg/bug606_2 [new file with mode: 0644]
tests/bugs/modalg/bug6181 [new file with mode: 0644]
tests/bugs/modalg/bug6182 [new file with mode: 0644]
tests/bugs/modalg/bug6272_1 [new file with mode: 0644]
tests/bugs/modalg/bug6272_2 [new file with mode: 0644]
tests/bugs/modalg/bug6272_3 [new file with mode: 0644]
tests/bugs/modalg/bug6272_4 [new file with mode: 0644]
tests/bugs/modalg/bug6272_5 [new file with mode: 0644]
tests/bugs/modalg/bug6272_6 [new file with mode: 0644]
tests/bugs/modalg/bug6272_71 [new file with mode: 0644]
tests/bugs/modalg/bug6272_710 [new file with mode: 0644]
tests/bugs/modalg/bug6272_72 [new file with mode: 0644]
tests/bugs/modalg/bug6272_73 [new file with mode: 0644]
tests/bugs/modalg/bug6272_74 [new file with mode: 0644]
tests/bugs/modalg/bug6272_75 [new file with mode: 0644]
tests/bugs/modalg/bug6272_76 [new file with mode: 0644]
tests/bugs/modalg/bug6272_77 [new file with mode: 0644]
tests/bugs/modalg/bug6272_78 [new file with mode: 0644]
tests/bugs/modalg/bug6272_79 [new file with mode: 0644]
tests/bugs/modalg/bug6272_81 [new file with mode: 0644]
tests/bugs/modalg/bug6272_810 [new file with mode: 0644]
tests/bugs/modalg/bug6272_82 [new file with mode: 0644]
tests/bugs/modalg/bug6272_83 [new file with mode: 0644]
tests/bugs/modalg/bug6272_84 [new file with mode: 0644]
tests/bugs/modalg/bug6272_85 [new file with mode: 0644]
tests/bugs/modalg/bug6272_86 [new file with mode: 0644]
tests/bugs/modalg/bug6272_87 [new file with mode: 0644]
tests/bugs/modalg/bug6272_88 [new file with mode: 0644]
tests/bugs/modalg/bug6272_89 [new file with mode: 0644]
tests/bugs/modalg/bug6277 [new file with mode: 0644]
tests/bugs/modalg/bug6289 [new file with mode: 0644]
tests/bugs/modalg/bug6334 [new file with mode: 0644]
tests/bugs/modalg/bug6502 [new file with mode: 0644]
tests/bugs/modalg/bug6538 [new file with mode: 0644]
tests/bugs/modalg/bug6554 [new file with mode: 0644]
tests/bugs/modalg/bug6766_1 [new file with mode: 0644]
tests/bugs/modalg/bug6766_2 [new file with mode: 0644]
tests/bugs/modalg/bug6766_3 [new file with mode: 0644]
tests/bugs/modalg/bug6766_4 [new file with mode: 0644]
tests/bugs/modalg/bug6811 [new file with mode: 0644]
tests/bugs/modalg/bug697_10 [new file with mode: 0644]
tests/bugs/modalg/bug697_11 [new file with mode: 0644]
tests/bugs/modalg/bug697_12 [new file with mode: 0644]
tests/bugs/modalg/bug697_3 [new file with mode: 0644]
tests/bugs/modalg/bug697_4 [new file with mode: 0644]
tests/bugs/modalg/bug697_5 [new file with mode: 0644]
tests/bugs/modalg/bug697_6 [new file with mode: 0644]
tests/bugs/modalg/bug697_7 [new file with mode: 0644]
tests/bugs/modalg/bug697_8 [new file with mode: 0644]
tests/bugs/modalg/bug697_9 [new file with mode: 0644]
tests/bugs/modalg/bug7626_1 [new file with mode: 0644]
tests/bugs/modalg/bug7626_2 [new file with mode: 0644]
tests/bugs/modalg/bug7668 [new file with mode: 0644]
tests/bugs/modalg/bug770
tests/bugs/modalg/bug8228 [new file with mode: 0644]
tests/bugs/modalg/bug8372 [new file with mode: 0644]
tests/bugs/modalg/bug951_31 [new file with mode: 0644]
tests/bugs/modalg/bug951_32 [new file with mode: 0644]
tests/bugs/modalg/bug951_41 [new file with mode: 0644]
tests/bugs/modalg/bug951_42 [new file with mode: 0644]
tests/bugs/modalg/bug951_5 [new file with mode: 0644]
tests/bugs/modalg/bug951_51 [new file with mode: 0644]
tests/bugs/modalg/bug951_52 [new file with mode: 0644]
tests/bugs/modalg/bug951_6 [new file with mode: 0644]
tests/bugs/modalg/bug951_61 [new file with mode: 0644]
tests/bugs/modalg/bug951_62 [new file with mode: 0644]
tests/bugs/modalg/bug951_71 [new file with mode: 0644]
tests/bugs/modalg/bug951_72 [new file with mode: 0644]
tests/bugs/moddata/bug10603 [new file with mode: 0644]
tests/bugs/moddata/bug10604_1 [new file with mode: 0644]
tests/bugs/moddata/bug10604_2 [new file with mode: 0644]
tests/bugs/moddata/bug10604_3 [new file with mode: 0644]
tests/bugs/moddata/bug10604_4 [new file with mode: 0644]
tests/bugs/moddata/bug10604_5 [new file with mode: 0644]
tests/bugs/moddata/bug1416 [new file with mode: 0644]
tests/bugs/moddata/bug145 [new file with mode: 0644]
tests/bugs/moddata/bug157 [new file with mode: 0644]
tests/bugs/moddata/bug1651 [new file with mode: 0644]
tests/bugs/moddata/bug203 [new file with mode: 0644]
tests/bugs/moddata/bug2442 [new file with mode: 0644]
tests/bugs/moddata/bug2569_1 [new file with mode: 0644]
tests/bugs/moddata/bug2569_2 [new file with mode: 0644]
tests/bugs/moddata/bug262 [new file with mode: 0644]
tests/bugs/moddata/bug2755 [new file with mode: 0644]
tests/bugs/moddata/bug277 [new file with mode: 0644]
tests/bugs/moddata/bug2784_1 [new file with mode: 0644]
tests/bugs/moddata/bug2784_2 [new file with mode: 0644]
tests/bugs/moddata/bug299 [new file with mode: 0644]
tests/bugs/moddata/bug353 [new file with mode: 0644]
tests/bugs/moddata/bug367 [new file with mode: 0644]
tests/bugs/moddata/bug3721_1 [new file with mode: 0644]
tests/bugs/moddata/bug3721_2 [new file with mode: 0644]
tests/bugs/moddata/bug3721_3 [new file with mode: 0644]
tests/bugs/moddata/bug3721_4 [new file with mode: 0644]
tests/bugs/moddata/bug3721_5 [new file with mode: 0644]
tests/bugs/moddata/bug3721_6 [new file with mode: 0644]
tests/bugs/moddata/bug3721_7 [new file with mode: 0644]
tests/bugs/moddata/bug377 [new file with mode: 0644]
tests/bugs/moddata/bug3896 [new file with mode: 0644]
tests/bugs/moddata/bug4426_1 [new file with mode: 0644]
tests/bugs/moddata/bug4426_2 [new file with mode: 0644]
tests/bugs/moddata/bug454 [new file with mode: 0644]
tests/bugs/moddata/bug524 [new file with mode: 0644]
tests/bugs/moddata/bug536_11 [new file with mode: 0644]
tests/bugs/moddata/bug536_12 [new file with mode: 0644]
tests/bugs/moddata/bug536_13 [new file with mode: 0644]
tests/bugs/moddata/bug536_14 [new file with mode: 0644]
tests/bugs/moddata/bug536_21 [new file with mode: 0644]
tests/bugs/moddata/bug536_22 [new file with mode: 0644]
tests/bugs/moddata/bug536_23 [new file with mode: 0644]
tests/bugs/moddata/bug536_24 [new file with mode: 0644]
tests/bugs/moddata/bug538 [new file with mode: 0644]
tests/bugs/moddata/bug5696 [new file with mode: 0644]
tests/bugs/moddata/bug5698 [new file with mode: 0644]
tests/bugs/moddata/bug6278 [new file with mode: 0644]
tests/bugs/moddata/bug6412 [new file with mode: 0644]
tests/bugs/moddata/bug6450_1 [new file with mode: 0644]
tests/bugs/moddata/bug6450_2 [new file with mode: 0644]
tests/bugs/moddata/bug6474 [new file with mode: 0644]
tests/bugs/moddata/bug6503 [new file with mode: 0644]
tests/bugs/moddata/bug6862_1 [new file with mode: 0644]
tests/bugs/moddata/bug6862_2 [new file with mode: 0644]
tests/bugs/moddata/bug6862_3 [new file with mode: 0644]
tests/bugs/moddata/bug6862_4 [new file with mode: 0644]
tests/bugs/moddata/bug6862_5 [new file with mode: 0644]
tests/bugs/moddata/bug6862_6 [new file with mode: 0644]
tests/bugs/moddata/bug6862_7 [new file with mode: 0644]
tests/bugs/moddata/bug6862_8 [new file with mode: 0644]
tests/bugs/moddata/bug6862_9 [new file with mode: 0644]
tests/bugs/moddata/bug7372 [new file with mode: 0644]
tests/bugs/moddata/bug8169 [new file with mode: 0644]
tests/bugs/step/bug2368 [new file with mode: 0644]
tests/bugs/step/bug5099 [new file with mode: 0644]
tests/bugs/step/bug5215 [new file with mode: 0644]
tests/bugs/step/bug5708 [new file with mode: 0644]
tests/bugs/vis/bug10 [new file with mode: 0644]
tests/bugs/vis/bug113 [new file with mode: 0644]
tests/bugs/vis/bug1174 [new file with mode: 0644]
tests/bugs/vis/bug1188 [new file with mode: 0644]
tests/bugs/vis/bug137_10 [new file with mode: 0644]
tests/bugs/vis/bug137_11 [new file with mode: 0644]
tests/bugs/vis/bug137_6 [new file with mode: 0644]
tests/bugs/vis/bug137_7 [new file with mode: 0644]
tests/bugs/vis/bug137_8 [new file with mode: 0644]
tests/bugs/vis/bug137_9 [new file with mode: 0644]
tests/bugs/vis/bug166 [new file with mode: 0644]
tests/bugs/vis/bug186 [new file with mode: 0644]
tests/bugs/vis/bug200 [new file with mode: 0644]
tests/bugs/vis/bug2066 [new file with mode: 0644]
tests/bugs/vis/bug223 [new file with mode: 0644]
tests/bugs/vis/bug230_1 [new file with mode: 0644]
tests/bugs/vis/bug230_2 [new file with mode: 0644]
tests/bugs/vis/bug23652
tests/bugs/vis/bug270_1 [new file with mode: 0644]
tests/bugs/vis/bug270_2 [new file with mode: 0644]
tests/bugs/vis/bug281_1 [new file with mode: 0644]
tests/bugs/vis/bug281_10 [new file with mode: 0644]
tests/bugs/vis/bug281_11 [new file with mode: 0644]
tests/bugs/vis/bug281_12 [new file with mode: 0644]
tests/bugs/vis/bug281_13 [new file with mode: 0644]
tests/bugs/vis/bug281_2 [new file with mode: 0644]
tests/bugs/vis/bug281_3 [new file with mode: 0644]
tests/bugs/vis/bug281_4 [new file with mode: 0644]
tests/bugs/vis/bug281_5 [new file with mode: 0644]
tests/bugs/vis/bug281_6 [new file with mode: 0644]
tests/bugs/vis/bug281_7 [new file with mode: 0644]
tests/bugs/vis/bug281_8 [new file with mode: 0644]
tests/bugs/vis/bug281_9 [new file with mode: 0644]
tests/bugs/vis/bug294 [new file with mode: 0644]
tests/bugs/vis/bug301 [new file with mode: 0644]
tests/bugs/vis/bug349 [new file with mode: 0644]
tests/bugs/vis/bug362 [new file with mode: 0644]
tests/bugs/vis/bug38 [new file with mode: 0644]
tests/bugs/vis/bug389 [new file with mode: 0644]
tests/bugs/vis/bug402 [new file with mode: 0644]
tests/bugs/vis/bug403 [new file with mode: 0644]
tests/bugs/vis/bug404 [new file with mode: 0644]
tests/bugs/vis/bug543 [new file with mode: 0644]
tests/bugs/vis/bug544 [new file with mode: 0644]
tests/bugs/vis/bug60 [new file with mode: 0644]
tests/bugs/vis/bug61 [new file with mode: 0644]
tests/bugs/vis/bug6132 [new file with mode: 0644]
tests/bugs/vis/bug627 [new file with mode: 0644]
tests/bugs/vis/bug71 [new file with mode: 0644]
tests/bugs/vis/bug74 [new file with mode: 0644]
tests/bugs/vis/bug79 [new file with mode: 0644]
tests/bugs/xde/bug1055 [new file with mode: 0644]
tests/bugs/xde/bug1430_1 [new file with mode: 0644]
tests/bugs/xde/bug1430_2 [new file with mode: 0644]
tests/bugs/xde/bug2821 [new file with mode: 0644]
tests/bugs/xde/bug3926 [new file with mode: 0644]
tests/bugs/xde/bug394 [new file with mode: 0644]
tests/bugs/xde/bug5439 [new file with mode: 0644]
tests/bugs/xde/bug6283 [new file with mode: 0644]
tests/bugs/xde/bug6542 [new file with mode: 0644]

diff --git a/tests/bugs/caf/bug1054_1 b/tests/bugs/caf/bug1054_1
new file mode 100644 (file)
index 0000000..350c3be
--- /dev/null
@@ -0,0 +1,569 @@
+puts "================"
+puts "OCC1054"
+puts "================"
+puts ""
+#######################################################################################
+# Mechanism of transactions' synchronization and mechanizm of nested transactions 
+#######################################################################################
+# Case 1 (nested mode ON)
+#######################################################################################
+
+proc OCC1054_Check_dump {IsGood index good_index case} {
+  # Check dump
+  if { ${index} != ${good_index} } {
+    set IsGood 0
+    puts "OCC1054 Error (case ${case} : index = ${index} good_index = ${good_index})"
+  }
+  return ${IsGood}
+}
+
+proc OCC1054_Check_real_attribute {IsGood doc label good_real case} {
+  global ${doc}
+  # Check real attribute
+  set percent_max 0.1
+  if [catch { set real [GetReal ${doc} ${label}] } message] {
+    set IsGood 0
+    puts "OCC1054 Error (case ${case})"
+  } else {
+    set real_percent [expr abs(${real} - ${good_real}) / double(${good_real}) * 100.]
+    if {${real_percent} > ${percent_max}} {
+       puts "good_real = ${good_real}"
+       puts "real = ${real}"
+       puts "real_percent = ${real_percent}"
+       puts "OCC1054 Error (case ${case}-2)"
+    }
+  }
+  return ${IsGood}
+}
+
+
+set IsGood 1
+set Case 0
+
+NewDocument doc1
+NewDocument doc2
+NewDocument doc3
+mtmCreate 4
+
+mtmNestedMode 1
+
+mtmAdd doc1
+
+mtmOpen
+  SetReal doc1 0:1:1 1.1
+  OpenCommand doc1
+    SetReal doc1 0:1:1 11
+  AbortCommand doc1
+
+  OpenCommand doc1
+    SetReal doc1 0:1:3 12.1
+
+    OpenCommand doc1
+      SetReal doc1 0:1:3 121
+    AbortCommand doc1
+
+    SetReal doc1 0:1:4 12.2
+  CommitCommand doc1
+
+  SetReal doc1 0:1:1 1.2
+  SetReal doc1 0:1:4 1.3
+mtmCommit Transaction1
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There is one document ( "2690640" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2690640" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1} 21 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1} 1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2} 29 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1:1  1.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1:3 12.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1:4  1.3 [incr Case]]
+
+mtmAdd doc2
+mtmAdd doc3
+
+mtmOpen
+  SetReal doc2 0:2:1 2.1
+  SetReal doc1 0:2:2 2.1
+  OpenCommand doc1
+  OpenCommand doc2
+    SetReal doc2 0:2:1 21
+    SetReal doc1 0:2:2 21
+  AbortCommand doc2
+
+  OpenCommand doc3
+  OpenCommand doc2
+    SetReal doc3 0:2:3 22.1
+    SetReal doc2 0:2:3 22.1
+
+    OpenCommand doc2
+      SetReal doc2 0:2:3 221
+    AbortCommand doc2
+
+    SetReal doc3 0:2:4 22.2
+  CommitCommand doc2
+  CommitCommand doc3
+  AbortCommand doc1
+
+  SetReal doc1 0:2:1 2.2
+  SetReal doc1 0:2:4 2.3
+mtmCommit Transaction2
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "2697976" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "2697976" "2705536" "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1} 23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1} 1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2} 31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2} 3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3} 41 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1  1.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 12.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  1.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmOpen
+  SetReal doc1 0:1:1 3.1
+  OpenCommand doc1
+    SetReal doc1 0:1:1 31
+  AbortCommand doc1
+
+  OpenCommand doc1
+    SetReal doc1 0:1:3 32.1
+
+    OpenCommand doc1
+      SetReal doc1 0:1:3 321
+    AbortCommand doc1
+
+    SetReal doc1 0:1:4 32.2
+  CommitCommand doc1
+
+  SetReal doc1 0:1:1 3.2
+  SetReal doc1 0:1:4 3.3
+mtmCommit Transaction3
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "2697976" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "2697976" "2705536" "2809192" ) 
+#  Undo:       Transaction3 - 1 documents  ( "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1} 23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1} 1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2} 31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2} 3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3} 41 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3} 1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4} 49 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1  3.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 32.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  3.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmUndo
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "2697976" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "2697976" "2705536" "2809192" )   < Last action
+#  Redo:       Transaction3 - 1 documents  ( "2809192" ) 
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set redo3 [lindex ${list} [expr ${index3} - 1]]
+set index4 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}     3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}     44 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${redo3} "Redo:" [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}     41 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1  1.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 12.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  1.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmOpen
+  SetReal doc1 0:1:1 4.1
+  OpenCommand doc1
+    SetReal doc1 0:1:1 41
+  AbortCommand doc1
+
+  OpenCommand doc1
+    SetReal doc1 0:1:3 42.1
+
+    OpenCommand doc1
+      SetReal doc1 0:1:3 421
+mtmAbort
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "2697976" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "2697976" "2705536" "2809192" )   < Last action
+#  Redo:       Transaction3 - 1 documents  ( "2809192" ) 
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set redo3 [lindex ${list} [expr ${index3} - 1]]
+set index4 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}     3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}     44 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${redo3} "Redo:" [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}     41 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1  1.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 12.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  1.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmRedo
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "2697976" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "2697976" "2705536" "2809192" ) 
+#  Undo:       Transaction3 - 1 documents  ( "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set undo3 [lindex ${list} [expr ${index3} - 1]]
+set index4 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}     3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}     41 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${undo3} "Undo:" [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}     49 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1  3.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 32.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  3.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmOpen
+  SetReal doc1 0:1:1 5.1
+  OpenCommand doc1
+    SetReal doc1 0:1:1 51
+
+  OpenCommand doc1
+    SetReal doc1 0:1:3 52.1
+
+    OpenCommand doc1
+      SetReal doc1 0:1:3 521
+mtmCommit Transaction5
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "2697976" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "2697976" "2705536" "2809192" ) 
+#  Undo:       Transaction3 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction5 - 1 documents  ( "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "Transaction5"]
+set docnum4 [lindex ${list} [expr ${index4} + 2]]
+set index5 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}     3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}     41 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}     49 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum4}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index5}     57 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1   51 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3  521 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  3.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmUndo
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "3095112" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "3095112" "2705536" "2809192" ) 
+#  Undo:       Transaction3 - 1 documents  ( "2809192" )   < Last action
+#  Redo:       Transaction5 - 1 documents  ( "2809192" ) 
+# 
+#  ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "Transaction5"]
+set docnum4 [lindex ${list} [expr ${index4} + 2]]
+set redo4 [lindex ${list} [expr ${index4} - 1]]
+set index5 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}     3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}     41 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}     52 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum4}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${redo4} "Redo:" [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index5}     49 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1  3.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 32.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  3.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+mtmOpen
+  SetReal doc1 0:1:1 6.1
+  OpenCommand doc1
+    SetReal doc1 0:1:1 61
+
+  OpenCommand doc1
+    SetReal doc1 0:1:3 62.1
+
+mtmCommit Transaction6
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "3095112" ) in the manager 
+# Nested transaction mode is on
+#  
+#  Undo:       Transaction1 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction2 - 3 documents  ( "3095112" "2705536" "2809192" ) 
+#  Undo:       Transaction3 - 1 documents  ( "2809192" ) 
+#  Undo:       Transaction6 - 1 documents  ( "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+
+set index1 [lsearch -exact ${list} "Transaction1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Transaction2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Transaction3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "Transaction6"]
+set docnum4 [lindex ${list} [expr ${index4} + 2]]
+set index5 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}     3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}     41 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}     49 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum4}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index5}     57 [incr Case]]
+
+# Check real attributes
+# doc1
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:1   61 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:3 62.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:1:4  3.3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:1  2.2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:2  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc1 0:2:4  2.3 [incr Case]]
+# doc2
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:1  2.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc2 0:2:3 22.1 [incr Case]]
+# doc3
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:3 22.1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} doc3 0:2:4 22.2 [incr Case]]
+
+if { ${IsGood} == 1 } {
+  puts "OCC1054 OK"
+} else {
+  puts "OCC1054 Error"
+}
diff --git a/tests/bugs/caf/bug1054_2 b/tests/bugs/caf/bug1054_2
new file mode 100644 (file)
index 0000000..add0dc3
--- /dev/null
@@ -0,0 +1,318 @@
+puts "================"
+puts "OCC1054"
+puts "================"
+puts ""
+#######################################################################################
+# Mechanism of transactions' synchronization and mechanizm of nested transactions 
+#######################################################################################
+# Case 2 (nested mode OFF)
+#######################################################################################
+
+proc OCC1054_Check_dump {IsGood index good_index case} {
+  # Check dump
+  if { ${index} != ${good_index} } {
+    set IsGood 0
+    puts "OCC1054 Error (case ${case} : index = ${index} good_index = ${good_index})"
+  }
+  return ${IsGood}
+}
+
+proc OCC1054_Check_real_attribute {IsGood doc label good_real case} {
+  global ${doc}
+  # Check real attribute
+  set percent_max 0.1
+  if [catch { set real [GetReal ${doc} ${label}] } message] {
+    set IsGood 0
+    puts "OCC1054 Error (case ${case})"
+  } else {
+    set real_percent [expr abs(${real} - ${good_real}) / double(${good_real}) * 100.]
+    if {${real_percent} > ${percent_max}} {
+       puts "good_real = ${good_real}"
+       puts "real = ${real}"
+       puts "real_percent = ${real_percent}"
+       puts "OCC1054 Error (case ${case}-2)"
+    }
+  }
+  return ${IsGood}
+}
+
+
+set IsGood 1
+set Case 0
+
+NewDocument doc1
+NewDocument doc2
+NewDocument doc3
+mtmCreate 4
+
+mtmAdd doc1
+
+mtmOpen
+SetReal doc1 0:1 1
+mtmCommit tr1
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There is one document ( "2809192" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr1 - 1 documents  ( "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0} "one" [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}     21 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}     1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}     29 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+
+
+mtmAdd doc2
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 2 documents ( "2809192" "2705536" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr1 - 1 documents  ( "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}  22 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}  30 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+
+mtmOpen
+SetReal doc2 0:1 2
+mtmCommit tr2
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 2 documents ( "2809192" "2705536" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr1 - 1 documents  ( "2809192" ) 
+#  Undo:       tr2 - 1 documents  ( "2705536" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "tr2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}  22 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}  30 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}  38 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:1 2 [incr Case]]
+
+SetReal doc3 0:1 1
+mtmAdd doc3
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "3095112" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr1 - 1 documents  ( "2809192" ) 
+#  Undo:       tr2 - 1 documents  ( "2705536" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "tr2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0}  3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}  23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}  31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}  39 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:1 2 [incr Case]]
+
+mtmOpen
+SetReal doc1 0:2 2
+SetReal doc3 0:2 2
+mtmCommit tr3
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "3095112" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr1 - 1 documents  ( "2809192" ) 
+#  Undo:       tr2 - 1 documents  ( "2705536" ) 
+#  Undo:       tr3 - 2 documents  ( "3095112" "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "tr2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "tr3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0}  3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}  23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}  31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}  39 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}  48 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:1 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc3} 0:2 2 [incr Case]]
+
+mtmOpen
+SetReal doc2 0:2 2
+SetReal doc3 0:3 3
+mtmCommit tr4
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "3095112" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr1 - 1 documents  ( "2809192" ) 
+#  Undo:       tr2 - 1 documents  ( "2705536" ) 
+#  Undo:       tr3 - 2 documents  ( "3095112" "2809192" ) 
+#  Undo:       tr4 - 2 documents  ( "3095112" "2705536" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr1"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "tr2"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "tr3"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "tr4"]
+set docnum4 [lindex ${list} [expr ${index4} + 2]]
+set index5 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0}  3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}  23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}  31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}  39 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}  48 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum4}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index5}  57 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:1 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc3} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc3} 0:3 3 [incr Case]]
+
+mtmOpen
+SetReal doc1 0:3 3
+SetReal doc2 0:3 3
+mtmCommit tr5
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There are 3 documents ( "2809192" "2705536" "3095112" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       tr2 - 1 documents  ( "2705536" ) 
+#  Undo:       tr3 - 2 documents  ( "3095112" "2809192" ) 
+#  Undo:       tr4 - 2 documents  ( "3095112" "2705536" ) 
+#  Undo:       tr5 - 2 documents  ( "2705536" "2809192" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set docnum0 [lindex ${list} 7]
+set index1 [lsearch -exact ${list} "tr2"]
+set docnum1 [lindex ${list} [expr ${index1} + 2]]
+set index2 [lsearch -exact ${list} "tr3"]
+set docnum2 [lindex ${list} [expr ${index2} + 2]]
+set index3 [lsearch -exact ${list} "tr4"]
+set docnum3 [lindex ${list} [expr ${index3} + 2]]
+set index4 [lsearch -exact ${list} "tr5"]
+set docnum4 [lindex ${list} [expr ${index4} + 2]]
+set index5 [lsearch -exact ${list} "Last"]
+
+# Check dump
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum0}  3 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index1}  23 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum1}  1 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index2}  31 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum2}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index3}  40 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum3}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index4}  49 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${docnum4}  2 [incr Case]]
+set IsGood [OCC1054_Check_dump ${IsGood} ${index5}  58 [incr Case]]
+
+# Check real attributes
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:1 1 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc1} 0:3 3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:1 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc2} 0:3 3 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc3} 0:2 2 [incr Case]]
+set IsGood [OCC1054_Check_real_attribute ${IsGood} ${doc3} 0:3 3 [incr Case]]
+
+if { ${IsGood} == 1 } {
+  puts "OCC1054 OK"
+} else {
+  puts "OCC1054 Error"
+}
index c82cef8..9373fe9 100755 (executable)
@@ -9,7 +9,7 @@ puts "Amount of iterations is $i_max"
 NewDocument D MDTV-Standard
 UndoLimit D 10
 
-restore [locate_data_file OCC114.brep] s
+restore [locate_data_file OCC294.brep] s
 
 set listmem {}
 for {set i 1} {${i} <= ${i_max}} {incr i} {
diff --git a/tests/bugs/caf/bug1395_1 b/tests/bugs/caf/bug1395_1
new file mode 100644 (file)
index 0000000..3fa884b
--- /dev/null
@@ -0,0 +1,64 @@
+puts "TODO OCC12345 ALL: OCC1395 Error : There is not the integer attribute on the label 0:2"
+puts "TODO OCC12345 ALL: OCC1395 Error"
+
+puts "================"
+puts "OCC1395"
+puts "================"
+puts ""
+#######################################################################################
+# Wrong behaviour of Undo Redo and SetUndoLimit methods in TDocStd_Document
+#######################################################################################
+# Case 1 (Undo)
+#######################################################################################
+
+set IsGood 1
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label
+set aLabel 0:2
+Label D ${aLabel}
+
+# Open a transaction
+OpenTran D
+
+# Set integer attribute
+set anInteger 5
+SetInteger D ${aLabel} ${anInteger}
+
+# Commit transaction
+CommitTran D 1
+
+# Undo
+DFUndo D 1
+
+# Check integer attributes
+if [catch { set Integer [GetInteger D ${aLabel}] } message] {
+  set IsGood 0
+  puts "OCC1395 Error : There is not the integer attribute on the label ${aLabel}"
+} else {
+  puts "OCC1395 OK : There is the integer attribute on the label ${aLabel}"
+}
+
+# Set real attribute
+set aReal 8.8
+SetReal D ${aLabel} ${aReal}
+
+# Undo
+DFUndo D 1
+
+# Check real attributes
+if [catch { set Real [GetReal D ${aLabel}] } message] {
+  set IsGood 0
+  puts "OCC1395 Error : There is not the real attribute on the label ${aLabel}"
+} else {
+  puts "OCC1395 OK : There is the real attribute on the label ${aLabel}"
+}
+
+if { ${IsGood} == 1 } {
+  puts "OCC1395 OK"
+} else {
+  puts "OCC1395 Error"
+}
diff --git a/tests/bugs/caf/bug1395_2 b/tests/bugs/caf/bug1395_2
new file mode 100644 (file)
index 0000000..675062b
--- /dev/null
@@ -0,0 +1,61 @@
+puts "TODO OCC12345 ALL: OCC1395 Error : There is not the integer attribute on the label 0:2"
+puts "TODO OCC12345 ALL: OCC1395 Error"
+
+puts "================"
+puts "OCC1395"
+puts "================"
+puts ""
+#######################################################################################
+# Wrong behaviour of Undo Redo and SetUndoLimit methods in TDocStd_Document
+#######################################################################################
+# Case 3 (SetUndoLimit)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label
+set aLabel 0:2
+Label D ${aLabel}
+
+# Open a transaction
+OpenTran D
+
+# Set integer attribute
+set anInteger 5
+SetInteger D ${aLabel} ${anInteger}
+
+# Commit transaction
+CommitTran D 1
+
+# Set UndoLimit
+UndoLimit D 10
+
+# Set real attribute
+set aReal 8.8
+SetReal D ${aLabel} ${aReal}
+
+# Undo
+DFUndo D 1
+
+# Check integer and real attributes
+set IsGood 1
+if [catch { set Integer [GetInteger D ${aLabel}] } message] {
+  set IsGood 0
+  puts "OCC1395 Error : There is not the integer attribute on the label ${aLabel}"
+} else {
+  puts "OCC1395 OK : There is the integer attribute on the label ${aLabel}"
+}
+if [catch { set Real [GetReal D ${aLabel}] } message] {
+  set IsGood 0
+  puts "OCC1395 Error : There is not the real attribute on the label ${aLabel}"
+} else {
+  puts "OCC1395 OK : There is the real attribute on the label ${aLabel}"
+}
+
+if { ${IsGood} == 1 } {
+  puts "OCC1395 OK"
+} else {
+  puts "OCC1395 Error"
+}
diff --git a/tests/bugs/caf/bug1454 b/tests/bugs/caf/bug1454
new file mode 100644 (file)
index 0000000..6a89883
--- /dev/null
@@ -0,0 +1,34 @@
+puts "TODO ?OCC12345 ALL: Elapsed time is more then 20.0 seconds - Faulty"
+puts "TODO ?OCC12345 ALL: Faulty OCC1454"
+
+puts "===== OCC1454 ====="
+#######################################################################################
+# Improve performance of TDF_Label::FindChild
+#######################################################################################
+
+puts "Info: Open the document with 80000 sublabels of the label 0:2"
+chrono h reset; chrono h start
+Open [locate_data_file OCC1726.std] D
+chrono h stop; set TimeList [chrono h show]
+
+set ElapsedTime_min [lindex ${TimeList} 4]
+set ElapsedTime_sec [lindex ${TimeList} 6]
+set CPUusertime [lindex ${TimeList} 11]
+set CPUsystemtime [lindex ${TimeList} 16]
+puts "ElapsedTime = ${ElapsedTime_min} min ${ElapsedTime_sec} sec CPUusertime = ${CPUusertime} CPUsystemtime = ${CPUsystemtime}"
+
+if { ${ElapsedTime_sec} > 20.0 || ${ElapsedTime_min} != 0 } {
+  puts "Elapsed time is more then 20.0 seconds - Faulty"
+  puts "Faulty OCC1454"
+} elseif { ${CPUusertime} > 12 } {
+    puts "CPUusertime is more then 12 seconds - Faulty"
+    puts "Faulty OCC1454"
+} elseif { ${CPUsystemtime} > 0.6 } { 
+    puts "CPUsystemtime is more then 0.6 seconds"
+    puts "Faulty OCC1454"
+} else {
+    puts "Elapsed time is less then 20 seconds - OK"
+    puts "CPU user time is less then 12 seconds - OK"
+    puts "CPU system time is less then 0.6 seconds - OK"
+    puts "OK for OCC1454"
+}
diff --git a/tests/bugs/caf/bug159 b/tests/bugs/caf/bug159
new file mode 100644 (file)
index 0000000..7a75d17
--- /dev/null
@@ -0,0 +1,28 @@
+puts "==========="
+puts "OCC159"
+puts "==========="
+
+pload QAcommands
+
+NewDocument D MDTV-Standard
+
+set log [OCC159 D]
+
+set list [split ${log}]
+set ll [llength ${list}]
+
+if { ${ll} < 13} then {
+   puts "OCC159: Error"
+} else {
+   set DocRefCount1 [lindex ${list} 2]
+   set DocOwner1    [lindex ${list} 5]
+   set DocOwner2    [lindex ${list} 8]
+   set DocRefCount2 [lindex ${list} 11]
+   set deltaRefCount [expr ${DocRefCount1} - ${DocRefCount2}]
+   if { ${DocOwner2} == "NULL" && ${deltaRefCount} >= 1 } then {
+      puts "OCC159: OK"
+   } else {
+      puts "OCC159: Error"
+   }
+}
+
diff --git a/tests/bugs/caf/bug1722 b/tests/bugs/caf/bug1722
new file mode 100644 (file)
index 0000000..06887dd
--- /dev/null
@@ -0,0 +1,98 @@
+puts "================"
+puts "OCC1722"
+puts "================"
+puts ""
+#######################################################################################
+# Wrong behaviour of the method CommitCommand of class TDocStd_MultiTransactionManager
+#######################################################################################
+
+proc OCC1722_Check_real_attribute {IsGood doc label good_real case} {
+  global ${doc}
+  # Check real attribute
+  set percent_max 0.1
+  if [catch { set real [GetReal ${doc} ${label}] } message] {
+    set IsGood 0
+    puts "OCC1722 Error (case ${case})"
+  } else {
+    set real_percent [expr abs(${real} - ${good_real}) / double(${good_real}) * 100.]
+    if {${real_percent} > ${percent_max}} {
+       puts "good_real = ${good_real}"
+       puts "real = ${real}"
+       puts "real_percent = ${real_percent}"
+       puts "OCC1722 Error (case ${case}-2)"
+    }
+  }
+  return ${IsGood}
+}
+
+
+set IsGood 1
+set Case 0
+set aLabel 0:1:1
+set aReal1 1.1
+set aReal2 2.1
+
+
+NewDocument doc1
+mtmCreate 4
+
+mtmAdd doc1
+
+SetReal doc1 ${aLabel} ${aReal1}
+set IsGood [OCC1722_Check_real_attribute ${IsGood} ${doc1} ${aLabel} ${aReal1} [incr Case]]
+
+OpenCommand doc1
+SetReal doc1 ${aLabel} ${aReal2}
+set IsGood [OCC1722_Check_real_attribute ${IsGood} ${doc1} ${aLabel} ${aReal2} [incr Case]]
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There is one document ( "3095112" ) in the manager 
+# Nested transaction mode is off
+#  
+# 
+# ***     End     ***
+################################################################################
+set index1 [lsearch -exact ${list} "Undo:"]
+
+# Check dump
+set case [incr Case]
+if { ${index1} != -1 } {
+  set IsGood 0
+  puts "OCC1722 Error (case ${case})"
+}
+
+mtmCommit Transaction1
+
+set list [mtmDump]
+################################################################################
+# *** Dump of MTM ***
+# There is one document ( "3095112" ) in the manager 
+# Nested transaction mode is off
+#  
+#  Undo:       Transaction1 - 1 documents  ( "3095112" )   < Last action
+# 
+# ***     End     ***
+################################################################################
+set index2 [lsearch -exact ${list} "Undo:"]
+
+# Check dump
+set case [incr Case]
+if { ${index2} == -1 } {
+  set IsGood 0
+  puts "OCC1722 Error (case ${case})"
+}
+
+Undo doc1
+set IsGood [OCC1722_Check_real_attribute ${IsGood} ${doc1} ${aLabel} ${aReal1} [incr Case]]
+
+Redo doc1
+set IsGood [OCC1722_Check_real_attribute ${IsGood} ${doc1} ${aLabel} ${aReal2} [incr Case]]
+
+
+if { ${IsGood} == 1 } {
+  puts "OCC1722 OK"
+} else {
+  puts "OCC1722 Error"
+}
diff --git a/tests/bugs/caf/bug1724 b/tests/bugs/caf/bug1724
new file mode 100644 (file)
index 0000000..2acef5a
--- /dev/null
@@ -0,0 +1,169 @@
+puts "================"
+puts "OCC1724"
+puts "OCC2707"
+puts "================"
+puts ""
+#######################################################################################
+# BinOcaf: portability of binary file between platforms 
+#######################################################################################
+# Various improvements of RINA LH3D-3H project
+#######################################################################################
+
+set QA_DUP 0
+
+set SetIntegerAttribute 100
+set SetRealAttribute 123.45
+set aFrom1 1
+set aTo1 2
+set SetReal1 3.21
+set SetReal2 4.56
+set aFrom2 11
+set aTo2 12
+set SetInteger1 3
+set SetInteger2 4
+set aLabel 0:2
+
+
+#### FOR PREPARING TEST ONLY ####
+#### # Create testing document
+#### NewDocument Doc BinOcaf
+#### UndoLimit Doc 100
+#### NewCommand Doc
+#### 
+#### # Set an integer attribute
+#### SetInteger Doc ${aLabel} ${SetIntegerAttribute}
+#### 
+#### # Set a real attribute
+#### SetReal Doc ${aLabel} ${SetRealAttribute}
+#### 
+#### # Set a real array attribute
+#### SetRealArray Doc ${aLabel} ${aFrom1} ${aTo1} ${SetReal1} ${SetReal2}
+#### 
+#### # Set an integer array attribute
+#### SetIntArray Doc ${aLabel} ${aFrom2} ${aTo2} ${SetInteger1} ${SetInteger2}
+#### 
+#### NewCommand Doc
+#### 
+#### # Save the document
+#### set OS $tcl_platform(os)
+#### if { ${OS} == "SunOS" } {
+####   puts "SunOS"
+####   set aFile ${WorkDirectory}/OCC1724-[file tail [info script]]-SunOS.cbf
+#### } else {
+####   puts "WNT"
+####   set aFile ${WorkDirectory}/OCC1724-[file tail [info script]]-WNT.cbf
+#### }
+#### puts "aFile=${aFile}"
+#### catch {exec rm -f ${aFile}}
+#### catch {SaveAs Doc ${aFile}}
+#### if { ![file exists ${aFile}] } {
+####    puts "There is not ${aFile} file; SaveAs command: Error"
+####    puts "OCC1724: ERROR (case 1)"
+#### }
+#### catch {exec chmod 777 ${aFile}}
+#### Close Doc
+#### FOR PREPARING TEST ONLY ####
+
+set IsGood 1
+
+Open [locate_data_file OCC1724-M3-WNT.cbf] DDoc
+
+# Get a value of integer attribute
+set GetIntegerAttribute ""
+set IsDone [catch {set GetIntegerAttribute [GetInteger DDoc ${aLabel}]} message]
+if { ${IsDone} != 0 ||
+   ${SetIntegerAttribute}!=${GetIntegerAttribute} } {
+   puts ${message}
+   puts "SetIntegerAttribute=${SetIntegerAttribute} GetIntegerAttribute=${GetIntegerAttribute}"
+   puts "Get a value of TDataStd_Integer attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 3)"
+   set IsGood 0
+} else {
+   puts "Get a value of TDataStd_Integer attribute from restoring document: OK"
+}
+
+# Get a value of real attribute
+set GetRealAttribute ""
+set IsDone [catch {set GetRealAttribute [GetReal DDoc ${aLabel}]} message]
+if { ${IsDone} != 0 ||
+   ${SetRealAttribute}!=${GetRealAttribute} } {
+   puts ${message}
+   puts "SetRealAttribute=${SetRealAttribute} GetRealAttribute=${GetRealAttribute}"
+   puts "Get a value of TDataStd_Real attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 4)"
+   set IsGood 0
+} else {
+   puts "Get a value of TDataStd_Real attribute from restoring document: OK"
+}
+
+# Get a value of real array attribute
+set GetRealArrayAttribute ""
+set IsDone [catch {set GetRealArrayAttribute [GetRealArray DDoc ${aLabel}]} message]
+if { ${IsDone} != 0 } {
+   puts ${message}
+   puts "Get a value of TDataStd_RealArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 5)"
+   set IsGood 0
+}
+set aRealArrayLength [llength ${GetRealArrayAttribute}]
+if { ${aRealArrayLength} != [expr ${aTo1} - ${aFrom1} + 1] } {
+   puts "aRealArrayLength=${aRealArrayLength}"
+   puts "Get a value of TDataStd_RealArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 6)"
+   set IsGood 0
+}
+set GetReal1 [lindex ${GetRealArrayAttribute} 0]
+if { ${SetReal1} != ${GetReal1} } {
+   puts "GetReal1=${GetReal1}"
+   puts "Get a value of TDataStd_RealArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 7)"
+   set IsGood 0
+}
+set GetReal2 [lindex ${GetRealArrayAttribute} 1]
+if { ${SetReal2} != ${GetReal2} } {
+   puts "GetReal2=${GetReal2}"
+   puts "Get a value of TDataStd_RealArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 8)"
+   set IsGood 0
+} else {
+   puts "Get a value of TDataStd_RealArray attribute from restoring document: OK"
+}
+
+# Get a value of Integer array attribute
+set GetIntegerArrayAttribute ""
+set IsDone [catch {set GetIntegerArrayAttribute [GetIntArray DDoc ${aLabel}]} message]
+if { ${IsDone} != 0 } {
+   puts ${message}
+   puts "Get a value of TDataStd_IntegerArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 9)"
+   set IsGood 0
+}
+set aIntegerArrayLength [llength ${GetIntegerArrayAttribute}]
+if { ${aIntegerArrayLength} != [expr ${aTo2} - ${aFrom2} + 1] } {
+   puts "aIntegerArrayLength=${aIntegerArrayLength}"
+   puts "Get a value of TDataStd_IntegerArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 10)"
+   set IsGood 0
+}
+set GetInteger1 [lindex ${GetIntegerArrayAttribute} 0]
+if { ${SetInteger1} != ${GetInteger1} } {
+   puts "GetInteger1=${GetInteger1}"
+   puts "Get a value of TDataStd_IntegerArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 11)"
+   set IsGood 0
+}
+set GetInteger2 [lindex ${GetIntegerArrayAttribute} 1]
+if { ${SetInteger2} != ${GetInteger2} } {
+   puts "GetInteger2=${GetInteger2}"
+   puts "Get a value of TDataStd_IntegerArray attribute from restoring document: Error"
+   puts "OCC1724: ERROR (case 12)"
+   set IsGood 0
+} else {
+   puts "Get a value of TDataStd_IntegerArray attribute from restoring document: OK"
+}
+
+if { ${IsGood} == 1 } {
+  puts "OCC1724 OK"
+} else {
+  puts "OCC1724 Error"
+}
diff --git a/tests/bugs/caf/bug1726 b/tests/bugs/caf/bug1726
new file mode 100644 (file)
index 0000000..828829c
--- /dev/null
@@ -0,0 +1,26 @@
+puts "================"
+puts "OCC1726"
+puts "================"
+puts ""
+#######################################################################################
+# TDF_LabelNode::~TDF_LabelNode causes stack overflow
+#######################################################################################
+
+puts "Info: Open the document with 80000 sublabels of the label 0:2"
+chrono h reset; chrono h start
+Open [locate_data_file OCC1726.std] D
+chrono h stop; chrono h show
+
+set IsGood 1
+puts "Info: Close the document"
+chrono h reset; chrono h start
+if [catch {Close D} result] {
+   set IsGood 0
+}
+chrono h stop; chrono h show
+
+if { ${IsGood} == 0} {
+  puts "Faulty OCC1726"
+} else {
+  puts "OK OCC1726"
+}
diff --git a/tests/bugs/caf/bug1919 b/tests/bugs/caf/bug1919
new file mode 100644 (file)
index 0000000..1e4db02
--- /dev/null
@@ -0,0 +1,114 @@
+puts "TODO OCC12345 ALL: OCC1919 Error : Italian locale not seted"
+puts "TODO OCC12345 ALL: OCC1919 Error"
+
+puts "================"
+puts "OCC1919"
+puts "================"
+puts ""
+#######################################################################################
+# Incorrect locale management in XmlDrivers_DocumentRetrievalDriver::Read()
+#######################################################################################
+
+pload QAcommands
+
+set USA_Label 0:10
+set Italian_Label 0:20
+set USA_Real 123.456
+set Italian_Real 123,456
+#set aFile ${filedir}/OCC1919-[file tail [info script]].xml
+set IsGood 1
+
+# Create document
+NewDocument D XmlOcaf
+UndoLimit D 100
+NewCommand D
+
+Label D ${USA_Label}
+Label D ${Italian_Label}
+
+# Set USA locale
+OCC1919_set en_US
+set en_US_local [lindex [OCC1919_get] 2]
+if { ${en_US_local} != "en_US" } {
+   puts "OCC1919 Error : USA - English (ISO-8859-1) locale not seted"
+   set IsGood 0
+}
+
+SetReal D ${USA_Label} ${USA_Real}
+
+# Get a value of the attribute
+set USA_IsDone [catch {set new_USA_Real [GetReal D ${USA_Label}]} message]
+if { ${USA_IsDone} != 0 || ${new_USA_Real}!=${USA_Real} } {
+   puts ${message}
+   puts "USA_Real=${USA_Real} new_USA_Real=${new_USA_Real} "
+   puts "OCC1919 Error : Get bad value of TDataStd_Real attribute"
+   set IsGood 0
+}
+
+# Set italian locale
+OCC1919_set it
+set it_local [lindex [OCC1919_get] 2]
+if { ${it_local} != "it" } {
+   puts "OCC1919 Error : Italian locale not seted"
+   set IsGood 0
+}
+
+OCC1919_real D ${Italian_Label} ${Italian_Real}
+
+# Get a value of the attribute
+set Italian_IsDone [catch {set new_Italian_Real [GetReal D ${Italian_Label}]} message]
+if { ${Italian_IsDone} != 0 || ${new_Italian_Real}!=${Italian_Real} } {
+   puts ${message}
+   puts "Italian_Real=${Italian_Real} new_Italian_Real=${new_Italian_Real}"
+   puts "OCC1919 Error : Get bad value of TDataStd_Real attribute"
+   set IsGood 0
+}
+
+# Get a value of the attribute
+set USA_IsDone [catch {set new_USA_Real [GetReal D ${USA_Label}]} message]
+if { ${USA_IsDone} != 0 || ${new_USA_Real}!=${Italian_Real} } {
+   puts ${message}
+   puts "Italian_Real=${Italian_Real} new_USA_Real=${new_USA_Real}"
+   puts "OCC1919 Error : Get bad value of TDataStd_Real attribute"
+   set IsGood 0
+}
+
+# Store the document
+file delete ${imagedir}/OCC1919-M6.xml
+SaveAs D ${imagedir}/OCC1919-M6.xml
+if { ![file exists ${imagedir}/OCC1919-M6.xml] } {
+   puts "OCC1919 Error : There is not file"
+   set IsGood 0
+}
+catch {exec chmod 777 ${imagedir}/OCC1919-M6.xml}
+Close D
+
+# Set en_US locale 
+OCC1919_set en_US
+set en_US_local [lindex [OCC1919_get] 2]
+if { ${en_US_local} != "en_US" } {
+   puts "OCC1919 Error : USA - English (ISO-8859-1) locale not seted"
+   set IsGood 0
+}
+
+# Restore the document
+Open ${imagedir}/OCC1919-M6.xml DD
+
+# Get a value of the attribute
+set USA_IsDone [catch {set new_USA_Real [GetReal DD ${USA_Label}]} message]
+set Italian_IsDone [catch {set new_Italian_Real [GetReal DD ${Italian_Label}]} message]
+if { ${USA_IsDone} != 0 || ${Italian_IsDone} != 0 || ${new_USA_Real}!=${new_Italian_Real} || ${new_Italian_Real}!=${USA_Real} } {
+   puts ${message}
+   puts "USA_Real=${USA_Real} Italian_Real=${Italian_Real}"
+   puts "new_USA_Real=${new_USA_Real} new_Italian_Real=${new_Italian_Real}"
+   puts "OCC1919 Error : Get bad value of TDataStd_Real attribute from restoring document"
+   set IsGood 0
+}
+
+if { ${IsGood} == 1 } {
+  puts "OCC1919 OK"
+} else {
+  puts "OCC1919 Error"
+}
+
+set make_photo 0
diff --git a/tests/bugs/caf/bug2269 b/tests/bugs/caf/bug2269
new file mode 100644 (file)
index 0000000..be59091
--- /dev/null
@@ -0,0 +1,51 @@
+puts "================"
+puts "OCC2269"
+puts "================"
+puts ""
+#######################################################################################
+# XML persistance should be more robust
+#######################################################################################
+# 
+# Tested file is contains 3 labels with TDataStd_RealArray attributes
+# 0:2   label has good TDataStd_RealArray attribute
+# 0:22  label has bad  TDataStd_RealArray attribute
+# 0:222 label has good TDataStd_RealArray attribute
+# 
+#######################################################################################
+
+#set ScriptDir $XmlDir
+#source ${ScriptDir}/begin
+#source ${ScriptDir}/002/begin
+
+#set aTestName "OCC2269"
+#set WorkDirectory ${filedir}
+#set aFile $WorkDirectory/${aTestName}.${FileSuffix}
+#catch {Close D}
+
+set IsGood 1
+Open [locate_data_file OCC2269.xml] DD
+
+if [catch {XDumpDF DD } result] {
+   puts "Error during dump ${aFile} file"
+   set IsGood 0
+}
+if [catch {CheckLabel DD 0:2} result] {
+   puts "Error during search 0:2 label in ${aFile} file"
+   set IsGood 0
+}
+if [catch {CheckLabel DD 0:22} result] {
+   puts "Error during search 0:22 label in ${aFile} file"
+   set IsGood 0
+}
+if [catch {CheckLabel DD 0:222} result] {
+   puts "Error during search 0:222 label in ${aFile} file"
+   set IsGood 0
+}
+
+Close DD
+
+if { ${IsGood} == 0} {
+  puts "Faulty OCC2269"
+} else {
+  puts "OK OCC2269"
+}
diff --git a/tests/bugs/caf/bug267_1 b/tests/bugs/caf/bug267_1
new file mode 100644 (file)
index 0000000..2317d04
--- /dev/null
@@ -0,0 +1,11 @@
+puts "========"
+puts "OCC267"
+puts "========"
+
+NewDocument D MDTV-Standard
+
+######################################################################
+
+file delete ${imagedir}/OCC267.std
+SaveAs D ${imagedir}/OCC267.std
+
diff --git a/tests/bugs/caf/bug267_2 b/tests/bugs/caf/bug267_2
new file mode 100644 (file)
index 0000000..7d7610a
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO OCC12345 ALL: OCC267: Error"
+
+puts "========"
+puts "OCC267"
+puts "========"
+
+######################################################################
+
+pload QAcommands
+
+NewDocument D MDTV-Standard
+file delete ${imagedir}/OCC267.std
+catch { OCC267 D ${imagedir}/OCC267.std } status
+
+set list [split ${status}]
+set index [lsearch -exact ${list} "CDF_StoreStatus"]
+
+if { ${index} == -1 } then {
+   puts "OCC267: Error"
+   puts ${status}
+} else {
+   set CDF_StoreStatus [lindex ${list} [expr ${index} + 2] ]
+   if { ${CDF_StoreStatus} == "CDF_SS_OK" } then {
+      puts "OCC267: OK"
+   } else {
+      puts "OCC267: ERROR"
+      puts ${status}
+      puts "CDF_StoreStatus = ${CDF_StoreStatus}"
+   }
+}
+
diff --git a/tests/bugs/caf/bug2932_10 b/tests/bugs/caf/bug2932_10
new file mode 100644 (file)
index 0000000..1ecb6b3
--- /dev/null
@@ -0,0 +1,73 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 8 (TDataStd_IntegerArray)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set From 1
+set To 2
+set IntegerArray1 3
+set IntegerArray2 4
+set isDelta 0
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_IntegerArray
+SetIntArray D ${Label} ${isDelta} ${From} ${To} ${IntegerArray1} ${IntegerArray2}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_IntegerArray
+SetIntArray D ${Label} ${isDelta} ${From} ${To} ${IntegerArray1} ${IntegerArray2}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_11 b/tests/bugs/caf/bug2932_11
new file mode 100644 (file)
index 0000000..63cd95f
--- /dev/null
@@ -0,0 +1,70 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 9 (TDataStd_Name)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Name "New Name"
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Name
+Label D ${Label}
+SetName D ${Label} ${Name}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Name
+SetName D ${Label} ${Name}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_12 b/tests/bugs/caf/bug2932_12
new file mode 100644 (file)
index 0000000..a10a4a4
--- /dev/null
@@ -0,0 +1,94 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 10 (TDataStd_PatternStd)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Create a box
+set X 10
+set Y 20
+set Z 30
+set DX 100
+set DY 200
+set DZ 300
+box Box ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}
+
+# Set a shape to the label
+set BoxLabel 0:3
+SetShape D ${BoxLabel} Box
+
+# Set a real attribute
+set RealLabel 0:4
+set RealPattern 123.456789
+SetReal D ${RealLabel} ${RealPattern}
+
+# Set an integer attribute
+set IntegerLabel 0:5
+set IntegerPattern 123456789
+SetInteger D ${IntegerLabel} ${IntegerPattern}
+
+# Set a signature
+set signature 1
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_PatternStd
+Label D ${Label}
+SetPattern D ${Label} ${signature} ${BoxLabel} ${RealLabel} ${IntegerLabel}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_PatternStd
+SetPattern D ${Label} ${signature} ${BoxLabel} ${RealLabel} ${IntegerLabel}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_13 b/tests/bugs/caf/bug2932_13
new file mode 100644 (file)
index 0000000..9dcc0d4
--- /dev/null
@@ -0,0 +1,76 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 11 (TDataStd_Plane)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Create a plane
+set X 10
+set Y 20
+set Z 30
+set DX -1
+set DY 0
+set DZ 0
+plane Plane ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Plane
+SetPlane D ${Label} Plane
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Plane
+SetPlane D ${Label} Plane
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_14 b/tests/bugs/caf/bug2932_14
new file mode 100644 (file)
index 0000000..12e6646
--- /dev/null
@@ -0,0 +1,73 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 12 (TDataStd_Point)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Create a point
+set X 10
+set Y 20
+set Z 30
+point Point ${X} ${Y} ${Z}
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Point
+SetPoint D ${Label} Point
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Point
+SetPoint D ${Label} Point
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_15 b/tests/bugs/caf/bug2932_15
new file mode 100644 (file)
index 0000000..206d725
--- /dev/null
@@ -0,0 +1,69 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 13 (TDataStd_Real)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Real 100.
+############################################
+
+set Integer1 300
+set Integer2 400
+set modified_attribute TDataStd_Integer
+
+############################################
+# Set TDataStd_Real
+SetReal D ${Label} ${Real}
+############################################
+
+SetInteger D ${Label} ${Integer1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Real
+SetReal D ${Label} ${Real}
+############################################
+
+# Set new value for TDataStd_Integer
+SetInteger D ${Label} ${Integer2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_16 b/tests/bugs/caf/bug2932_16
new file mode 100644 (file)
index 0000000..9c24014
--- /dev/null
@@ -0,0 +1,73 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 14 (TDataStd_RealArray)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set From 1
+set To 2
+set RealArray1 3.
+set RealArray2 4.
+set isDelta 0
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_RealArray
+SetRealArray D ${Label} ${isDelta} ${From} ${To} ${RealArray1} ${RealArray2}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_RealArray
+SetRealArray D ${Label} ${isDelta} ${From} ${To} ${RealArray1} ${RealArray2}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_17 b/tests/bugs/caf/bug2932_17
new file mode 100644 (file)
index 0000000..ce75699
--- /dev/null
@@ -0,0 +1,71 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 15 (TDataStd_Relation)
+#######################################################################################
+
+pload QAcommands
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Relation "New Relation"
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Relation
+OCC2932_SetRelation D ${Label} ${Relation}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Relation
+OCC2932_SetRelation D ${Label} ${Relation}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_18 b/tests/bugs/caf/bug2932_18
new file mode 100644 (file)
index 0000000..56e413b
--- /dev/null
@@ -0,0 +1,115 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 16 (TDataStd_Shape)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Create a box
+set X 10
+set Y 20
+set Z 30
+set DX 100
+set DY 200
+set DZ 300
+box Box ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Shape
+SetShape D ${Label} Box
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Shape
+SetShape D ${Label} Box
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+if { 1 == 2 } {
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
+}
+
+# NEW VERSION!!!!!
+set ll [llength ${list}]
+set good_length 20
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute1 [lindex ${list} [expr ${good_length} - 1]]
+  set name_attribute2 [lindex ${list} [expr ${good_length} - 4]]
+  set modified_attribute2 TNaming_NamedShape
+  puts "name_attribute1 = ${name_attribute1}"
+  puts "name_attribute2 = ${name_attribute2}"
+  puts "modified_attribute = ${modified_attribute}"
+  puts "modified_attribute2 = ${modified_attribute2}"
+
+  set Is_TDataStd_Real 0
+  set Is_TNaming_NamedShape 0
+  if {[string compare ${name_attribute1} ${modified_attribute}] == 0 ||
+      [string compare ${name_attribute2} ${modified_attribute}] == 0 } {
+    set Is_TDataStd_Real 1
+  }
+  if {[string compare ${name_attribute1} ${modified_attribute2}] == 0 ||
+      [string compare ${name_attribute2} ${modified_attribute2}] == 0 } {
+    set Is_TNaming_NamedShape 1
+  }
+
+
+  if { ${Is_TDataStd_Real} == 1 && ${Is_TNaming_NamedShape} == 1 } {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+
+}
diff --git a/tests/bugs/caf/bug2932_19 b/tests/bugs/caf/bug2932_19
new file mode 100644 (file)
index 0000000..50d48f0
--- /dev/null
@@ -0,0 +1,73 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 18 (TDataStd_Variable)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Set isConstant
+set isConstant 1
+
+# Set a units
+set units "kg/m3"
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Variable
+SetVariable D ${Label} ${isConstant} ${units}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Variable
+SetVariable D ${Label} ${isConstant} ${units}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_20 b/tests/bugs/caf/bug2932_20
new file mode 100644 (file)
index 0000000..296f688
--- /dev/null
@@ -0,0 +1,70 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 19 (TDF_Reference)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Reference 0:3
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDF_Reference
+Label D ${Reference}
+SetReference D ${Label} ${Reference}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDF_Reference
+SetReference D ${Label} ${Reference}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_21 b/tests/bugs/caf/bug2932_21
new file mode 100644 (file)
index 0000000..0b06ca5
--- /dev/null
@@ -0,0 +1,71 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 20 (TDF_TagSource)
+#######################################################################################
+
+pload QAcommands
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Tag 5
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDF_TagSource
+OCC2932_SetTag D ${Label} ${Tag}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDF_TagSource
+OCC2932_SetTag D ${Label} ${Tag}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_22 b/tests/bugs/caf/bug2932_22
new file mode 100644 (file)
index 0000000..bd54e65
--- /dev/null
@@ -0,0 +1,73 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 21 (TFunction_Function)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Set a driver guid
+set driverGuid "5b35ca00-5b78-11d1-8940-080009dc3333"
+
+# Set a failure
+set failureNb 13
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TFunction_Function
+SetFunction D ${Label} ${driverGuid} ${failureNb}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TFunction_Function
+SetFunction D ${Label} ${driverGuid} ${failureNb}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_23 b/tests/bugs/caf/bug2932_23
new file mode 100644 (file)
index 0000000..c8d7c80
--- /dev/null
@@ -0,0 +1,69 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 22 (TPrsStd_AISPresentation)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+Label D ${Label}
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TPrsStd_AISPresentation
+AISSet D ${Label} NS
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TPrsStd_AISPresentation
+AISSet D ${Label} NS
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_24 b/tests/bugs/caf/bug2932_24
new file mode 100644 (file)
index 0000000..cfff758
--- /dev/null
@@ -0,0 +1,72 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 23 (TPrsStd_Position)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Set a coordinates
+set X 123.456
+set Y 789.012
+set Z 345.678
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TPrsStd_Position
+SetPosition D ${Label} ${X} ${Y} ${Z}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TPrsStd_Position
+SetPosition D ${Label} ${X} ${Y} ${Z}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_3 b/tests/bugs/caf/bug2932_3
new file mode 100644 (file)
index 0000000..4a34df9
--- /dev/null
@@ -0,0 +1,75 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 1 (TDataStd_Axis)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set X 10
+set Y 20
+set Z 30
+set DX 100
+set DY 200
+set DZ 300
+line Line ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Axis
+SetAxis D ${Label} Line
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Axis
+SetAxis D ${Label} Line
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_4 b/tests/bugs/caf/bug2932_4
new file mode 100644 (file)
index 0000000..ebae92c
--- /dev/null
@@ -0,0 +1,69 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 2 (TDataStd_Comment)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Comment "New Comment"
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Comment
+SetComment D ${Label} ${Comment}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Comment
+SetComment D ${Label} ${Comment}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_5 b/tests/bugs/caf/bug2932_5
new file mode 100644 (file)
index 0000000..5f0d918
--- /dev/null
@@ -0,0 +1,91 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 3 (TDataStd_Constraint)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Create a box
+set X 10
+set Y 20
+set Z 30
+set DX 100
+set DY 200
+set DZ 300
+box Box ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}
+
+# Set a shape to the label
+set BoxLabel 0:3
+SetShape D ${BoxLabel} Box
+
+# Set integer attribute
+set Integer 10
+set IntegerLabel 0:4
+SetInteger D ${IntegerLabel} ${Integer}
+
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Constraint
+Label D ${Label}
+SetConstraint D ${Label} "tan" ${BoxLabel}
+SetConstraint D ${Label} "plane" ${BoxLabel}
+SetConstraint D ${Label} "value" ${IntegerLabel}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Constraint
+SetConstraint D ${Label} "tan" ${BoxLabel}
+SetConstraint D ${Label} "plane" ${BoxLabel}
+SetConstraint D ${Label} "value" ${IntegerLabel}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_6 b/tests/bugs/caf/bug2932_6
new file mode 100644 (file)
index 0000000..2572b57
--- /dev/null
@@ -0,0 +1,71 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 4 (TDataStd_Current)
+#######################################################################################
+
+pload QAcommands
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+#
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Current
+OCC2932_SetCurrent D ${Label}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Current
+OCC2932_SetCurrent D ${Label}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_7 b/tests/bugs/caf/bug2932_7
new file mode 100644 (file)
index 0000000..05622df
--- /dev/null
@@ -0,0 +1,70 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 5 (TDataStd_Expression)
+#######################################################################################
+
+pload QAcommands
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Expression "New Expression"
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+OCC2932_SetExpression D ${Label} ${Expression}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Expression
+OCC2932_SetExpression D ${Label} ${Expression}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug2932_8 b/tests/bugs/caf/bug2932_8
new file mode 100644 (file)
index 0000000..d42419c
--- /dev/null
@@ -0,0 +1,116 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 6 (TDataStd_Geometry)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+# Create a box
+set X 10
+set Y 20
+set Z 30
+set DX 100
+set DY 200
+set DZ 300
+box Box ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Geometry
+Label D ${Label}
+SetGeometry D ${Label} "pnt" ${Box}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Geometry
+SetGeometry D ${Label} "pnt" ${Box}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+if { 1 == 2 } {
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
+}
+
+# NEW VERSION!!!!!
+set ll [llength ${list}]
+set good_length 20
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute1 [lindex ${list} [expr ${good_length} - 1]]
+  set name_attribute2 [lindex ${list} [expr ${good_length} - 4]]
+  set modified_attribute2 TNaming_NamedShape
+  puts "name_attribute1 = ${name_attribute1}"
+  puts "name_attribute2 = ${name_attribute2}"
+  puts "modified_attribute = ${modified_attribute}"
+  puts "modified_attribute2 = ${modified_attribute2}"
+
+  set Is_TDataStd_Real 0
+  set Is_TNaming_NamedShape 0
+  if {[string compare ${name_attribute1} ${modified_attribute}] == 0 ||
+      [string compare ${name_attribute2} ${modified_attribute}] == 0 } {
+    set Is_TDataStd_Real 1
+  }
+  if {[string compare ${name_attribute1} ${modified_attribute2}] == 0 ||
+      [string compare ${name_attribute2} ${modified_attribute2}] == 0 } {
+    set Is_TNaming_NamedShape 1
+  }
+
+
+  if { ${Is_TDataStd_Real} == 1 && ${Is_TNaming_NamedShape} == 1 } {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+
+}
diff --git a/tests/bugs/caf/bug2932_9 b/tests/bugs/caf/bug2932_9
new file mode 100644 (file)
index 0000000..59fa3d0
--- /dev/null
@@ -0,0 +1,69 @@
+puts "================"
+puts "OCC2932"
+puts "================"
+puts ""
+#######################################################################################
+# Create Attribute Delta depending on actual change of the attribute 
+#######################################################################################
+# Case 7 (TDataStd_Integer)
+#######################################################################################
+
+# Create a new document and set UndoLimit
+NewDocument D MDTV-Standard
+UndoLimit D 100
+
+# Create a label and set attributes
+NewCommand D
+set Label 0:2
+
+############################################
+set Integer 100
+############################################
+
+set Real1 300.
+set Real2 400.
+set modified_attribute TDataStd_Real
+
+############################################
+# Set TDataStd_Integer
+SetInteger D ${Label} ${Integer}
+############################################
+
+SetReal D ${Label} ${Real1}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+############################################
+# Set old value for TDataStd_Integer
+SetInteger D ${Label} ${Integer}
+############################################
+
+# Set new value for TDataStd_Real
+SetReal D ${Label} ${Real2}
+set list [DumpCommand D]
+
+# Open a transaction
+NewCommand D
+set list [DumpCommand D]
+
+# Checking
+set ll [llength ${list}]
+set good_length 17
+puts "length = ${ll}"
+puts "good_length = ${good_length}"
+
+if { ${ll} != ${good_length} } {
+  puts "OCC2932 Error (case 1)"
+} else {
+  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
+  puts "name_attribute = ${name_attribute}"
+  puts "modified_attribute = ${modified_attribute}"
+  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
+    puts "OCC2932 OK"
+  } else {
+    puts "OCC2932 Error (case 2)"
+  }
+}
diff --git a/tests/bugs/caf/bug644 b/tests/bugs/caf/bug644
new file mode 100644 (file)
index 0000000..8e0a901
--- /dev/null
@@ -0,0 +1,30 @@
+puts "================="
+puts "OCC644"
+puts "SAM1513"
+puts "================="
+puts ""
+
+NewDocument D 
+UndoLimit D 10 
+
+NewCommand D 
+SetVariable D 0:1 0 mm 
+SetRelation D 0:2 x=10 0:1 
+
+NewCommand D 
+SetRelation D 0:2 x=20 0:1 
+
+NewCommand D 
+Undo D 
+Redo D
+Undo D
+
+set RelationList [DumpRelation D 0:2]
+
+if {[llength ${RelationList}] <= 10} {
+    puts "OCC644: OK"
+} else {
+    puts "OCC644: ERROR"
+}
+
+
diff --git a/tests/bugs/fclasses/bug11568_3 b/tests/bugs/fclasses/bug11568_3
new file mode 100644 (file)
index 0000000..9ba5db6
--- /dev/null
@@ -0,0 +1,18 @@
+puts "============"
+puts "OCC11568"
+puts "============"
+puts ""
+#######################################################################
+# UnitsAPI package uses incorrect symbol for minutes: mn instead of min
+#######################################################################
+
+set BugNumber OCC11568
+
+set UnitString "min"
+set result "Token word : min\n"
+
+if { [unitparsing ${UnitString}] == ${result} } {
+    puts "${BugNumber}: OK"
+} else {
+    puts "${BugNumber}: Faulty"
+}
diff --git a/tests/bugs/fclasses/bug11568_4 b/tests/bugs/fclasses/bug11568_4
new file mode 100644 (file)
index 0000000..a5cda62
--- /dev/null
@@ -0,0 +1,18 @@
+puts "============"
+puts "OCC11568"
+puts "============"
+puts ""
+#######################################################################
+# UnitsAPI package uses incorrect symbol for minutes: mn instead of min
+#######################################################################
+
+set BugNumber OCC11568
+
+set UnitString "min"
+set result "result: 60\n"
+
+if { [unitconvtoSI 1 ${UnitString}] == ${result} } {
+    puts "${BugNumber}: OK"
+} else {
+    puts "${BugNumber}: Faulty"
+}
diff --git a/tests/bugs/fclasses/bug142 b/tests/bugs/fclasses/bug142
new file mode 100644 (file)
index 0000000..f0d6b55
--- /dev/null
@@ -0,0 +1,8 @@
+puts "========"
+puts "OCC142"
+puts "CSR888 (call 68539)"
+puts "========"
+
+pload QAcommands
+
+OCC142
diff --git a/tests/bugs/fclasses/bug181_1 b/tests/bugs/fclasses/bug181_1
new file mode 100644 (file)
index 0000000..b2fcaf5
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC181"
+puts "OCC701"
+puts "========"
+######################################################
+# Resource_Manager class doen't return status of saving resources in a file.
+######################################################
+# Add method BuildPath to OSD_Directory
+######################################################
+
+# Clear tmp-data
+######################################################################
+set tmp ${imagedir}
+######################################################################
+
+pload QAcommands
+
+file delete ${tmp}/1/2/3/OCC181
+file delete ${tmp}/1/2/OCC181
+file delete ${tmp}/1/OCC181
+file delete ${tmp}/1/2/3
+file delete ${tmp}/1/2
+file delete ${tmp}/1
+
+set log [OCC181 OCC181 ${imagedir} ${tmp}/1 0]
+
+set list [split ${log}]
+set ll [llength ${list}]
+set status [lindex ${list} [expr ${ll} - 2] ]
+
+if { ${status} == "TRUE"} then {
+   puts "OCC181: OK"
+} else {
+   puts "OCC181: Error"
+}
+
diff --git a/tests/bugs/fclasses/bug181_2 b/tests/bugs/fclasses/bug181_2
new file mode 100644 (file)
index 0000000..8e743ac
--- /dev/null
@@ -0,0 +1,38 @@
+puts "TODO OCC12345 ALL: OCC181: Error"
+
+puts "========"
+puts "OCC181"
+puts "OCC701"
+puts "========"
+######################################################
+# Resource_Manager class doen't return status of saving resources in a file.
+######################################################
+# Add method BuildPath to OSD_Directory
+######################################################
+
+# Clear tmp-data
+######################################################################
+set tmp ${imagedir}
+######################################################################
+
+pload QAcommands
+
+file delete ${tmp}/1/2/3/OCC181
+file delete ${tmp}/1/2/OCC181
+file delete ${tmp}/1/OCC181
+file delete ${tmp}/1/2/3
+file delete ${tmp}/1/2
+file delete ${tmp}/1
+
+set log [OCC181 OCC181 ${imagedir} ${tmp}/1/2/3 0]
+
+set list [split ${log}]
+set ll [llength ${list}]
+set status [lindex ${list} [expr ${ll} - 2] ]
+
+if { ${status} == "TRUE"} then {
+    puts "OCC181: OK"
+} else {
+    puts "OCC181: Error"
+}
+
diff --git a/tests/bugs/fclasses/bug216 b/tests/bugs/fclasses/bug216
new file mode 100644 (file)
index 0000000..394b8c9
--- /dev/null
@@ -0,0 +1,7 @@
+puts "========"
+puts "OCC216"
+puts "========"
+
+pload QAcommands
+
+OCC216
diff --git a/tests/bugs/fclasses/bug309 b/tests/bugs/fclasses/bug309
new file mode 100644 (file)
index 0000000..84e07b2
--- /dev/null
@@ -0,0 +1,44 @@
+puts "================"
+puts "OCC309"
+puts "================"
+puts ""
+
+pload QAcommands
+
+set result [OCC309]
+
+set ll [llength ${result}]
+if { ${ll} != 2 } {
+    puts "result = ${result}"
+    puts "length = ${ll}"
+    puts "OCC309: ERROR 0"
+} else {
+    set result1 [lindex ${result} 0]
+    set result2 [lindex ${result} 1]
+    set CurrentDirectory [pwd]
+    set UpTrek [file dirname ${CurrentDirectory}]
+    if { [string compare $tcl_platform(platform) "windows"] != 0} {
+       set res1 [ string range $result1 1 [expr [string length $result1] -3 ] ]
+       set res2 [ string range $result2 1 [expr [string length $result2] -3 ] ]
+    } else {
+       set res1 [ string range $result1 1 [expr [string length $result1] -2 ] ]
+       set res2 [ string range $result1 1 [expr [string length $result2] -8 ] ]
+    }
+    if {[string compare ${res1} "${CurrentDirectory}"] == 0} {
+       puts "OCC309: OK 1"
+    } else {
+       puts "result1 = ${result1}"
+       puts "res1 = ${res1}"
+       puts "CurrentDirectory = ${CurrentDirectory}"
+       puts "OCC309: ERROR 1"
+    }
+    if {[string compare ${res2} "${UpTrek}"] == 0} {
+       puts "OCC309: OK 2"
+    } else {
+       puts "result2 = ${result2}"
+       puts "res2 = ${res2}"
+       puts "UpTrek = ${UpTrek}"
+       puts "OCC309: ERROR 2"
+    }
+}
+
diff --git a/tests/bugs/fclasses/bug310 b/tests/bugs/fclasses/bug310
new file mode 100644 (file)
index 0000000..0dae584
--- /dev/null
@@ -0,0 +1,35 @@
+puts "================"
+puts "OCC310"
+puts "================"
+puts ""
+
+pload QAcommands
+
+set result [OCC310]
+
+set ll [llength ${result}]
+if { ${ll} != 2 } {
+    puts "result = ${result}"
+    puts "length = ${ll}"
+    puts "OCC310: ERROR 0"
+} else {
+    set result1 [lindex ${result} 0]
+    set result2 [lindex ${result} 1]
+    set Directory "|where|you|want|tmp|qwerty|tmp|"
+    set UpTrek "|where|you|want|tmp|qwerty|"
+    if {[string compare ${result1} "${Directory}"] == 0} {
+        puts "OCC310: OK 1"
+    } else {
+        puts "result1 = ${result1}"
+       puts "Directory = ${Directory}"
+        puts "OCC310: ERROR 1"
+    }
+    if {[string compare ${result2} "${UpTrek}"] == 0} {
+       puts "OCC310: OK 2"
+    } else {
+       puts "result2 = ${result2}"
+       puts "UpTrek = ${UpTrek}"
+       puts "OCC310: ERROR 2"
+    }
+}
+
diff --git a/tests/bugs/fclasses/bug6143 b/tests/bugs/fclasses/bug6143
new file mode 100644 (file)
index 0000000..f950e54
--- /dev/null
@@ -0,0 +1,31 @@
+puts "================"
+puts "OCC1723"
+puts "OCC2707"
+puts "OCC6143"
+puts "OCC12131"
+puts "================"
+puts ""
+#######################################################################################
+# OSD::SetSignal : not all FLT exceptions are catched
+# Various improvements of RINA LH3D-3H project
+# Correct handling of exceptions on WNT
+#######################################################################################
+
+pload QAcommands
+
+set BugNumber OCC6143
+
+set OK_string "TestExcept: Successfull completion\n"
+set IsDone [catch {set aResult [OCC6143]} result]
+
+if { ${IsDone} != 0 } {
+    puts "result = ${result}"
+    puts "Faulty ${BugNumber}"
+} else {
+    if { [string first ${OK_string} ${aResult} ] != -1 } {
+       puts "OK ${BugNumber}"
+    } else {
+       puts "Faulty ${BugNumber}"
+    }
+}
+
diff --git a/tests/bugs/fclasses/bug983 b/tests/bugs/fclasses/bug983
new file mode 100644 (file)
index 0000000..a3dc215
--- /dev/null
@@ -0,0 +1,24 @@
+puts "================"
+puts "OCC983"
+puts "================"
+puts ""
+#######################################################################################
+# LDOM xml parser does not take into account "&amp;" xml entity.
+#######################################################################################
+
+pload QAcommands
+
+set list [OCC983 [locate_data_file OCC983.xml]]
+
+if { [regexp "Document parsed" $list] == 1 } {
+    if {[lsearch -exact ${list} "&View"] != -1 } {
+       puts "OCC983: OK"
+    } elseif {[lsearch -exact ${list} "&amp;View"] != 0 } {
+       puts "OCC983: Error"
+    } else {
+       puts "OCC983: Error ; bad input file."
+    }
+} else {
+    puts "OCC983: Error ; document not parsed"
+}
+
diff --git a/tests/bugs/iges/bug5079 b/tests/bugs/iges/bug5079
new file mode 100644 (file)
index 0000000..413df85
--- /dev/null
@@ -0,0 +1,14 @@
+puts "================"
+puts "OCC5079"
+puts "================"
+puts ""
+#######################################################################################
+# Exception in translating of IGES files
+#######################################################################################
+
+igesbrep [locate_data_file OCC5079.igs] a *
+tpcompound result
+
+checkshape result
+
+set 2dviewer 0
diff --git a/tests/bugs/iges/bug6508 b/tests/bugs/iges/bug6508
new file mode 100644 (file)
index 0000000..15e3f18
--- /dev/null
@@ -0,0 +1,16 @@
+puts "========"
+puts "OCC6508"
+puts "========"
+puts ""
+######################################################
+# Reading invalid General Symbol entity from an IGES file causes an exception
+######################################################
+
+igesbrep [locate_data_file OCC6508.igs] a *
+tpcompound result
+
+checkshape result
+
+set nb_f_good 192
+
+set 2dviewer 0
diff --git a/tests/bugs/iges/bug663 b/tests/bugs/iges/bug663
new file mode 100644 (file)
index 0000000..916b123
--- /dev/null
@@ -0,0 +1,23 @@
+puts "========================"
+puts "OCC663"
+puts "========================"
+#### Wrong translation of faces on SurfaceOfRevolution
+puts ""
+
+igesbrep [locate_data_file D44-11325-6.igs] a 2860
+
+set x 62.5015115293408
+set y -56.0926450759605
+set z -44.3
+vertex v $x $y $z
+
+distmini d a_1 v
+
+set MinDistList [dump d_val]
+set MinDist [lindex $MinDistList end]
+
+if {$MinDist > 1e-7} {
+    puts "Faulty OCC663"
+} else {
+    puts "OCC663 OK"
+}
diff --git a/tests/bugs/modalg/bug10160_1 b/tests/bugs/modalg/bug10160_1
new file mode 100644 (file)
index 0000000..98e2c13
--- /dev/null
@@ -0,0 +1,59 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-2.brep] b2 
+
+set NbTests 3
+
+dchrono h0 reset
+dchrono h0 start
+
+bop b1 b2
+dchrono h0 stop
+set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopcommon result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 1.30062e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 20
+set nb_e_good 28
+set nb_w_good 16
+set nb_f_good 15
+set nb_sh_good 3
+set nb_sol_good 3
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 86
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_10 b/tests/bugs/modalg/bug10160_10
new file mode 100644 (file)
index 0000000..a6f9678
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-2.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopfuse result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 3.20326e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 116
+set nb_e_good 173
+set nb_w_good 67
+set nb_f_good 63
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 422
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_11 b/tests/bugs/modalg/bug10160_11
new file mode 100644 (file)
index 0000000..8172a41
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-2.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopcut result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 3.05154e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 96
+set nb_e_good 143
+set nb_w_good 51
+set nb_f_good 48
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 341
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_12 b/tests/bugs/modalg/bug10160_12
new file mode 100644 (file)
index 0000000..e4c0243
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-2.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   boptuc result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 6.38359e+06
+
+# Analysis of "nbshapes res"
+set nb_v_good 108
+set nb_e_good 161
+set nb_w_good 61
+set nb_f_good 60
+set nb_sh_good 3
+set nb_sol_good 3
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 397
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_2 b/tests/bugs/modalg/bug10160_2
new file mode 100644 (file)
index 0000000..e85072e
--- /dev/null
@@ -0,0 +1,57 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-2.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopfuse result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 4.75218e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 32
+set nb_e_good 60
+set nb_w_good 32
+set nb_f_good 29
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 156
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug10160_3 b/tests/bugs/modalg/bug10160_3
new file mode 100644 (file)
index 0000000..bba4743
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-2.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopcut result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 2.36194e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 24
+set nb_e_good 34
+set nb_w_good 20
+set nb_f_good 19
+set nb_sh_good 4
+set nb_sol_good 4
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 106
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_4 b/tests/bugs/modalg/bug10160_4
new file mode 100644 (file)
index 0000000..c8283b9
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-2.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   boptuc result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 3.56087e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 24
+set nb_e_good 34
+set nb_w_good 20
+set nb_f_good 17
+set nb_sh_good 3
+set nb_sol_good 3
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 102
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug10160_5 b/tests/bugs/modalg/bug10160_5
new file mode 100644 (file)
index 0000000..87ca7f7
--- /dev/null
@@ -0,0 +1,55 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopcommon result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 782201
+
+# Analysis of "nbshapes res"
+set nb_v_good 53
+set nb_e_good 75
+set nb_w_good 38
+set nb_f_good 34
+set nb_sh_good 6
+set nb_sol_good 6
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 213
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_6 b/tests/bugs/modalg/bug10160_6
new file mode 100644 (file)
index 0000000..029f0ce
--- /dev/null
@@ -0,0 +1,57 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopfuse result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 3.61484e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 121
+set nb_e_good 178
+set nb_w_good 65
+set nb_f_good 59
+set nb_sh_good 3
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 429
+
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug10160_7 b/tests/bugs/modalg/bug10160_7
new file mode 100644 (file)
index 0000000..bbbc95e
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopcut result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 3.00597e+07
+
+# Analysis of "nbshapes res"
+set nb_v_good 61
+set nb_e_good 87
+set nb_w_good 44
+set nb_f_good 36
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 231
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_8 b/tests/bugs/modalg/bug10160_8
new file mode 100644 (file)
index 0000000..e2b9718
--- /dev/null
@@ -0,0 +1,55 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-1.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   boptuc result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 6.87093e+06
+
+# Analysis of "nbshapes res"
+set nb_v_good 113
+set nb_e_good 166
+set nb_w_good 59
+set nb_f_good 57
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 398
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10160_9 b/tests/bugs/modalg/bug10160_9
new file mode 100644 (file)
index 0000000..eb5f66f
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC10160"
+puts "============"
+puts ""
+#######################################################################
+# BOP perfomance improvemen
+#######################################################################
+
+set BugNumber OCC10160
+
+restore [locate_data_file OCC10160-2.brep] b1 
+restore [locate_data_file OCC10160-3.brep] b2 
+
+set NbTests 3
+
+puts "Prepare boolean operation ..."
+dchrono h0 reset; dchrono h0 start
+bop b1 b2
+dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
+puts "CPU_user_time0=${CPU_user_time0}"
+
+puts "Start boolean operation ..."
+dchrono h reset; dchrono h start
+#
+# BOOLEAN OPERATION ----- START
+#
+for {set i 1} {$i <= ${NbTests}} {incr i} {
+   bopcommon result
+}
+#
+# BOOLEAN OPERATION ----- FINISH
+#
+dchrono h stop; set CPU_time_List [dchrono h show]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
+puts "Finish boolean operation ..."
+puts "CPU_user_time=${CPU_user_time}"
+set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
+puts "CPU_user_time=${CPU_user_time}"
+
+set square 4.86635e+06
+
+# Analysis of "nbshapes res"
+set nb_v_good 88
+set nb_e_good 131
+set nb_w_good 45
+set nb_f_good 45
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 312
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10232 b/tests/bugs/modalg/bug10232
new file mode 100644 (file)
index 0000000..38ceba4
--- /dev/null
@@ -0,0 +1,38 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10232"
+puts "============"
+puts ""
+#######################################################################
+# Exception "Segmentation violation" in Boolean Operations
+#######################################################################
+
+set BugNumber OCC10232
+
+puts "Load first shape ..."
+restore [locate_data_file OCC10232_ms1.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC10232_ms2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 3210.71
+
+set nb_v_good 1197
+set nb_e_good 1182
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 2380
+
+set 2dviewer 1
+
diff --git a/tests/bugs/modalg/bug10435_1 b/tests/bugs/modalg/bug10435_1
new file mode 100644 (file)
index 0000000..4605e60
--- /dev/null
@@ -0,0 +1,38 @@
+puts "============"
+puts "OCC10435"
+puts "============"
+puts ""
+#######################################################################
+# error in fillet after Cut of torus from box
+#######################################################################
+
+set BugNumber OCC10435
+
+restore [locate_data_file OCC10435.brep] a 
+
+checkshape a
+explode a e
+
+set radius 5.
+
+if { [catch {fillet result a ${radius} a_10 ${radius} a_15 ${radius} a_16 } catch_result] } {
+    puts "Faulty ${BugNumber} exception (case 1): Fillet operation fails on given shape "
+} else {
+    puts "${BugNumber} (case 1) OK: Fillet operation was made"
+
+    set square 36455.2
+
+    # Analysis of "nbshapes res"
+    set nb_v_good 12
+    set nb_e_good 19
+    set nb_w_good 11
+    set nb_f_good 10
+    set nb_sh_good 1
+    set nb_sol_good 1
+    set nb_compsol_good 0
+    set nb_compound_good 1
+    set nb_shape_good 55
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug10435_2 b/tests/bugs/modalg/bug10435_2
new file mode 100644 (file)
index 0000000..ae6577a
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10435"
+puts "============"
+puts ""
+#######################################################################
+# error in fillet after Cut of torus from box
+#######################################################################
+
+set BugNumber OCC10435
+
+puts "Load shape ..."
+restore [locate_data_file OCC10435.brep] b1 
+
+explode b1 e
+
+puts "Start fillet ..."
+fillet result b1 5 b1_15 5 b1_16 5 b1_10
+puts "Finish fillet ..."
+
+set square 36455.2
+
+# Analysis of "nbshapes res"
+set nb_v_good 12
+set nb_e_good 19
+set nb_w_good 11
+set nb_f_good 10
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 55
+
+set 2dviewer 1
+
diff --git a/tests/bugs/modalg/bug10605_1 b/tests/bugs/modalg/bug10605_1
new file mode 100644 (file)
index 0000000..023a6ec
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10605"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10605
+
+restore [locate_data_file OCC10605-1.brep] b1 
+restore [locate_data_file OCC10605-3.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 233.798
+
+# Analysis of "nbshapes res"
+set nb_v_good 10
+set nb_e_good 15
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 42
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10605_2 b/tests/bugs/modalg/bug10605_2
new file mode 100644 (file)
index 0000000..af3bae2
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10605"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10605
+
+restore [locate_data_file OCC10605-1.brep] b1 
+restore [locate_data_file OCC10605-3.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 838.752
+
+# Analysis of "nbshapes res"
+set nb_v_good 15
+set nb_e_good 22
+set nb_w_good 10
+set nb_f_good 9
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 59
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10605_3 b/tests/bugs/modalg/bug10605_3
new file mode 100644 (file)
index 0000000..ed50c6e
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10605"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10605
+
+restore [locate_data_file OCC10605-1.brep] b1 
+restore [locate_data_file OCC10605-3.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 779.887
+
+# Analysis of "nbshapes res"
+set nb_v_good 13
+set nb_e_good 19
+set nb_w_good 8
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 50
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10605_4 b/tests/bugs/modalg/bug10605_4
new file mode 100644 (file)
index 0000000..eb432e0
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10605"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10605
+
+restore [locate_data_file OCC10605-1.brep] b1 
+restore [locate_data_file OCC10605-3.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 292.663
+
+# Analysis of "nbshapes res"
+set nb_v_good 12
+set nb_e_good 18
+set nb_w_good 9
+set nb_f_good 9
+set nb_sh_good 2
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 53
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10605_5 b/tests/bugs/modalg/bug10605_5
new file mode 100644 (file)
index 0000000..3f6d3b4
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "OCC10605"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10605
+
+restore [locate_data_file OCC10605-1.brep] b1 
+restore [locate_data_file OCC10605-3.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result b1 b2
+puts "Finish boolean operation ..."
+
+set length 59.8334
+# Analysis of "nbshapes res"
+set nb_v_good 9
+set nb_e_good 9
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 19
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10606_1 b/tests/bugs/modalg/bug10606_1
new file mode 100644 (file)
index 0000000..2196de4
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10606"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10606
+
+restore [locate_data_file OCC10604-1.brep] b1 
+restore [locate_data_file OCC10606-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 66.672
+
+# Analysis of "nbshapes res"
+set nb_v_good 6
+set nb_e_good 8
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 21
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10606_2 b/tests/bugs/modalg/bug10606_2
new file mode 100644 (file)
index 0000000..b2e8807
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10606"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10606
+
+restore [locate_data_file OCC10604-1.brep] b1 
+restore [locate_data_file OCC10606-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 1450.22
+
+# Analysis of "nbshapes res"
+set nb_v_good 6
+set nb_e_good 8
+set nb_w_good 4
+set nb_f_good 4
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 25
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10606_3 b/tests/bugs/modalg/bug10606_3
new file mode 100644 (file)
index 0000000..ca14f2e
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10606"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10606
+
+restore [locate_data_file OCC10604-1.brep] b1 
+restore [locate_data_file OCC10606-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 761.355
+
+# Analysis of "nbshapes res"
+set nb_v_good 6
+set nb_e_good 8
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 23
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10606_4 b/tests/bugs/modalg/bug10606_4
new file mode 100644 (file)
index 0000000..144937b
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10606"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10606
+
+restore [locate_data_file OCC10604-1.brep] b1 
+restore [locate_data_file OCC10606-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 755.54
+
+# Analysis of "nbshapes res"
+set nb_v_good 6
+set nb_e_good 8
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 23
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10606_5 b/tests/bugs/modalg/bug10606_5
new file mode 100644 (file)
index 0000000..46e467e
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10606"
+puts "============"
+puts ""
+#######################################################################
+# Fuse Fails
+#######################################################################
+
+set BugNumber OCC10606
+
+restore [locate_data_file OCC10604-1.brep] b1 
+restore [locate_data_file OCC10606-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result b1 b2
+puts "Finish boolean operation ..."
+
+set length 18.3861
+
+# Analysis of "nbshapes res"
+set nb_v_good 4
+set nb_e_good 4
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 9
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug1077 b/tests/bugs/modalg/bug1077
new file mode 100644 (file)
index 0000000..5f6a1a7
--- /dev/null
@@ -0,0 +1,16 @@
+pload QAcommands
+
+puts "============"
+puts "OCC1077"
+puts "============"
+puts ""
+######################################################
+# BUG in boolean operations in the development version
+######################################################
+
+if { [catch { OCC1077 result } catch_result] } {
+     puts "Faulty OCC1077"
+}
+
+set square 587.181
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug10842_1 b/tests/bugs/modalg/bug10842_1
new file mode 100644 (file)
index 0000000..a269905
--- /dev/null
@@ -0,0 +1,36 @@
+puts "TODO OCC111111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10842"
+puts "============"
+puts ""
+#######################################################################
+# Bug in Bop
+#######################################################################
+
+set BugNumber OCC10842
+
+restore [locate_data_file OCC10842-1.brep] b1 
+restore [locate_data_file OCC10842-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 2312.93
+
+# Analysis of "nbshapes res"
+set nb_v_good 7
+set nb_e_good 9
+set nb_w_good 4
+set nb_f_good 4
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 27
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10842_2 b/tests/bugs/modalg/bug10842_2
new file mode 100644 (file)
index 0000000..85e0e6f
--- /dev/null
@@ -0,0 +1,36 @@
+puts "TODO OCC111111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10842"
+puts "============"
+puts ""
+#######################################################################
+# Bug in Bop
+#######################################################################
+
+set BugNumber OCC10842
+
+restore [locate_data_file OCC10842-1.brep] b1 
+restore [locate_data_file OCC10842-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 27919.7
+
+# Analysis of "nbshapes res"
+set nb_v_good 15
+set nb_e_good 21
+set nb_w_good 7
+set nb_f_good 6
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 52
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10842_3 b/tests/bugs/modalg/bug10842_3
new file mode 100644 (file)
index 0000000..0dd9460
--- /dev/null
@@ -0,0 +1,36 @@
+puts "TODO OCC111111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10842"
+puts "============"
+puts ""
+#######################################################################
+# Bug in Bop
+#######################################################################
+
+set BugNumber OCC10842
+
+restore [locate_data_file OCC10842-1.brep] b1 
+restore [locate_data_file OCC10842-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 18757.7
+
+# Analysis of "nbshapes res"
+set nb_v_good 13
+set nb_e_good 18
+set nb_w_good 6
+set nb_f_good 6
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 46
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10842_4 b/tests/bugs/modalg/bug10842_4
new file mode 100644 (file)
index 0000000..df6e78c
--- /dev/null
@@ -0,0 +1,36 @@
+puts "TODO OCC111111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC10842"
+puts "============"
+puts ""
+#######################################################################
+# Bug in Bop
+#######################################################################
+
+set BugNumber OCC10842
+
+restore [locate_data_file OCC10842-1.brep] b1 
+restore [locate_data_file OCC10842-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 11475
+
+# Analysis of "nbshapes res"
+set nb_v_good 9
+set nb_e_good 12
+set nb_w_good 5
+set nb_f_good 4
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 33
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10842_5 b/tests/bugs/modalg/bug10842_5
new file mode 100644 (file)
index 0000000..87cddb1
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10842"
+puts "============"
+puts ""
+#######################################################################
+# Bug in Bop
+#######################################################################
+
+set BugNumber OCC10842
+
+restore [locate_data_file OCC10842-1.brep] b1 
+restore [locate_data_file OCC10842-2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result b1 b2
+puts "Finish boolean operation ..."
+
+set length 122.816
+
+# Analysis of "nbshapes res"
+set nb_v_good 6
+set nb_e_good 6
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 13
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10846_1 b/tests/bugs/modalg/bug10846_1
new file mode 100644 (file)
index 0000000..151d20a
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10846"
+puts "============"
+puts ""
+#######################################################################
+# Cut operation produces invalid result
+#######################################################################
+
+set BugNumber OCC10846
+
+restore [locate_data_file bug10846_solid1.brep] b1 
+restore [locate_data_file bug10846_solid2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 183.567
+
+# Analysis of "nbshapes res"
+set nb_v_good 18
+set nb_e_good 31
+set nb_w_good 19
+set nb_f_good 19
+set nb_sh_good 6
+set nb_sol_good 6
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 100
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10846_2 b/tests/bugs/modalg/bug10846_2
new file mode 100644 (file)
index 0000000..17e59f1
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10846"
+puts "============"
+puts ""
+#######################################################################
+# Cut operation produces invalid result
+#######################################################################
+
+set BugNumber OCC10846
+
+restore [locate_data_file bug10846_solid1.brep] b1 
+restore [locate_data_file bug10846_solid2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 2309.97
+
+# Analysis of "nbshapes res"
+set nb_v_good 25
+set nb_e_good 45
+set nb_w_good 15
+set nb_f_good 15
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 103
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10846_3 b/tests/bugs/modalg/bug10846_3
new file mode 100644 (file)
index 0000000..c69041b
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10846"
+puts "============"
+puts ""
+#######################################################################
+# Cut operation produces invalid result
+#######################################################################
+
+set BugNumber OCC10846
+
+restore [locate_data_file bug10846_solid1.brep] b1 
+restore [locate_data_file bug10846_solid2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 510.907
+
+# Analysis of "nbshapes res"
+set nb_v_good 24
+set nb_e_good 43
+set nb_w_good 20
+set nb_f_good 20
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 110
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10846_4 b/tests/bugs/modalg/bug10846_4
new file mode 100644 (file)
index 0000000..0f277e7
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC10846"
+puts "============"
+puts ""
+#######################################################################
+# Cut operation produces invalid result
+#######################################################################
+
+set BugNumber OCC10846
+
+restore [locate_data_file bug10846_solid1.brep] b1 
+restore [locate_data_file bug10846_solid2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 1982.63
+
+# Analysis of "nbshapes res"
+set nb_v_good 19
+set nb_e_good 33
+set nb_w_good 14
+set nb_f_good 14
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 83
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug10846_5 b/tests/bugs/modalg/bug10846_5
new file mode 100644 (file)
index 0000000..4130e90
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC10846"
+puts "============"
+puts ""
+#######################################################################
+# Cut operation produces invalid result
+#######################################################################
+
+set BugNumber OCC10846
+
+restore [locate_data_file bug10846_solid1.brep] b1 
+restore [locate_data_file bug10846_solid2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result b1 b2
+puts "Finish boolean operation ..."
+
+set length 94.4534
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug12213 b/tests/bugs/modalg/bug12213
new file mode 100644 (file)
index 0000000..d52e13b
--- /dev/null
@@ -0,0 +1,47 @@
+puts "============"
+puts "OCC12213"
+puts "============"
+puts ""
+#######################################################################
+# Invalid sweep was created by command "buildsweep" in DRAW in case circular path
+#######################################################################
+
+set BugNumber OCC12213
+
+circle c1 0 0 0 100
+trim cc1 c1 0 3.14
+mkedge e2 cc1
+wire w2 e2
+
+box a 95 -10 -5 10 10 10
+explode a w
+explode a_4 e
+wire w21 a_4_1 a_4_2 a_4_3 a_4_4
+
+box b -110 -10 -5 20 10 10
+explode b w
+explode b_4 e
+wire w22 b_4_1 b_4_2 b_4_3 b_4_4
+
+explode w2 v
+
+mksweep w2
+addsweep w21 w2_1
+addsweep w22 w2_2
+buildsweep result
+
+set square 15708.8
+
+# Analysis of "nbshapes res"
+set nb_v_good 8
+set nb_e_good 12
+set nb_w_good 4
+set nb_f_good 4
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 29
+
+set 2dviewer 1
+
diff --git a/tests/bugs/modalg/bug12257 b/tests/bugs/modalg/bug12257
new file mode 100644 (file)
index 0000000..39214ff
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC12257"
+puts "============"
+puts ""
+#######################################################################
+# Fuse operation fails
+#######################################################################
+
+set BugNumber OCC12257
+
+puts "Load shape ..."
+restore [locate_data_file OCC12257.brep] b1 
+
+explode b1
+
+puts "Prepare boolean operation ..."
+bop b1_1 b1_2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 3394.17
+
+# Analysis of "nbshapes res"
+set nb_v_good 72
+set nb_e_good 109
+set nb_w_good 39
+set nb_f_good 39
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 262
+
+set 2dviewer 1
+
diff --git a/tests/bugs/modalg/bug1226 b/tests/bugs/modalg/bug1226
new file mode 100644 (file)
index 0000000..cc775f0
--- /dev/null
@@ -0,0 +1,24 @@
+puts "================"
+puts "OCC1226"
+puts "The revolution problem reproduced in OCC Samples"
+puts "================"
+puts ""
+
+vertex  v1  0  0 0
+vertex  v2 50  0 0
+vertex  v3 50 50 0
+
+edge    e1 v1 v2
+edge    e2 v2 v3
+edge    e3 v3 v1
+
+wire    w  e1 e2 e3
+
+mkplane f  w
+
+revol result  f  0  0  30 0 1 0 180
+
+set square 23211.3
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug1243_1 b/tests/bugs/modalg/bug1243_1
new file mode 100644 (file)
index 0000000..8fa04a2
--- /dev/null
@@ -0,0 +1,26 @@
+puts "================"
+puts "OCC1243"
+puts "================"
+puts "Bad solid created from face with command 'revol'"
+puts ""
+
+restore [locate_data_file OCC1243-1.brep] f1 
+checkshape f1
+
+revol result f1 -5000.0 0.0 0.0 10000.0 0.0 0.0 360.0
+
+set tolerance [maxtolerance result]
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxFaceTolerance
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxEdgeTolerance
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxVertexTolerance
+
+set max_tolerance 1.00000e-06
+
+if { ${MaxFaceTolerance} > ${max_tolerance} || ${MaxEdgeTolerance} > ${max_tolerance} || ${MaxVertexTolerance} > ${max_tolerance} } {
+    puts "OCC1243 - Error"
+} else {
+    puts "OCC1243 - OK"
+}
+
+set square 350733
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug1243_2 b/tests/bugs/modalg/bug1243_2
new file mode 100644 (file)
index 0000000..3fc9d74
--- /dev/null
@@ -0,0 +1,26 @@
+puts "================"
+puts "OCC1243"
+puts "================"
+puts "Bad solid created from face with command 'revol'"
+puts ""
+
+restore [locate_data_file OCC1243-2.brep] f1 
+checkshape f1
+
+revol result f1 -5000.0 0.0 0.0 10000.0 0.0 0.0 360.0
+
+set tolerance [maxtolerance result]
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxFaceTolerance
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxEdgeTolerance
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxVertexTolerance
+
+set max_tolerance 1.00000e-06
+
+if { ${MaxFaceTolerance} > ${max_tolerance} || ${MaxEdgeTolerance} > ${max_tolerance} || ${MaxVertexTolerance} > ${max_tolerance} } {
+    puts "OCC1243 - Error"
+} else {
+    puts "OCC1243 - OK"
+}
+
+set square 3.06024e+06
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug1255 b/tests/bugs/modalg/bug1255
new file mode 100644 (file)
index 0000000..7ee3cb6
--- /dev/null
@@ -0,0 +1,16 @@
+puts "================"
+puts "OCC1255"
+puts "================"
+puts ""
+# Exception in command 'section'
+
+restore [locate_data_file OCC1255.brep] a 
+checkshape a
+
+plane p1 0 -36.8067 0 0 1 0
+mkface f1 p1
+
+bsection result a f1
+
+set length 5534.74
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug1255_1 b/tests/bugs/modalg/bug1255_1
new file mode 100644 (file)
index 0000000..e204e59
--- /dev/null
@@ -0,0 +1,24 @@
+puts "========="
+puts " OCC1255 "
+puts "========="
+puts ""
+###############################################
+## Exception in command 'section'
+#  (This script tests new topology)
+###############################################
+
+restore [locate_data_file OCC1255.brep] a 
+checkshape a
+
+plane p1 0 -36.8067 0 0 1 0
+mkface f1 p1
+
+if { [catch {bop a f1 } ] } {
+    puts "Faulty OCC1255: BOP operation was made wrongly"
+} else {
+    bopsection result
+}
+
+set length 5383.42
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug1360 b/tests/bugs/modalg/bug1360
new file mode 100644 (file)
index 0000000..3d3bec6
--- /dev/null
@@ -0,0 +1,19 @@
+pload QAcommands
+
+puts "================"
+puts "OCC1360"
+puts "================"
+puts ""
+######################################################
+# Solid correctly displayed in shadding mode, but one tis faces itself has no prs
+######################################################
+
+pload XDE
+
+restore [locate_data_file OCC1360.brep] sh 
+
+fixshape result sh 1e-7
+
+set square 407.599
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1456 b/tests/bugs/modalg/bug1456
new file mode 100644 (file)
index 0000000..ccde302
--- /dev/null
@@ -0,0 +1,36 @@
+puts "============"
+puts "OCC1456"
+puts "============"
+puts ""
+######################################################
+# Impossible to build mixed type fillets
+######################################################
+
+restore [locate_data_file OCC1456.brep] a 
+
+checkshape a
+
+##############################################
+explode a w
+explode a_4 e
+mkevol result a
+updatevol a_4_1 0 5 0.5 20 1 5
+updatevol a_4_2 0 5
+updatevol a_4_3 0 5
+updatevol a_4_4 0 5 0.5 20 1 5
+updatevol a_4_5 0 5 0.5 20 1 5
+updatevol a_4_6 0 5
+updatevol a_4_7 0 5 0.5 20 1 5
+updatevol a_4_8 0 5
+
+if { [catch { buildevol } catch_result] } {
+    puts "Faulty OCC1456 (case 2)"
+}
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set square 3.21455e+06
+set only_screen 1
diff --git a/tests/bugs/modalg/bug1477_1 b/tests/bugs/modalg/bug1477_1
new file mode 100644 (file)
index 0000000..ec27ed3
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 1)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 913238
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug1477_10 b/tests/bugs/modalg/bug1477_10
new file mode 100644 (file)
index 0000000..5ba4490
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 10)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 -T 0 1 1 2 2 .5
+
+if { [catch {buildsweep result -C} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 0
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_11 b/tests/bugs/modalg/bug1477_11
new file mode 100644 (file)
index 0000000..e820087
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO ?OCC11111 ALL: An exception was caught"
+puts "TODO ?OCC11111 ALL: Exception"
+puts "TODO ?OCC11111 ALL: Faulty OCC1477"
+puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
+
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 11)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 0 1 1 2 2 .5
+
+if { [catch {buildsweep result -R} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.81647e+006
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_12 b/tests/bugs/modalg/bug1477_12
new file mode 100644 (file)
index 0000000..d842464
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 12)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 -T 0 1 1 2 2 .5
+
+if { [catch {buildsweep result -R} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set good_square 1.99019e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_2 b/tests/bugs/modalg/bug1477_2
new file mode 100644 (file)
index 0000000..0791b76
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 2)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 -T
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 913238
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_3 b/tests/bugs/modalg/bug1477_3
new file mode 100644 (file)
index 0000000..5a88567
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 3)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2
+
+if { [catch {buildsweep result -C} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.02648e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_4 b/tests/bugs/modalg/bug1477_4
new file mode 100644 (file)
index 0000000..6cf2622
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 4)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 -T
+
+if { [catch {buildsweep result -C} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.11707e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_5 b/tests/bugs/modalg/bug1477_5
new file mode 100644 (file)
index 0000000..170be3c
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 5)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2
+
+if { [catch {buildsweep result -R} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.02342e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_6 b/tests/bugs/modalg/bug1477_6
new file mode 100644 (file)
index 0000000..d434bc9
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 6)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 -T
+
+if { [catch {buildsweep result -R} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.10891e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_7 b/tests/bugs/modalg/bug1477_7
new file mode 100644 (file)
index 0000000..207c93f
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 7)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 0 1 1 2 2 .5
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.49907e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_8 b/tests/bugs/modalg/bug1477_8
new file mode 100644 (file)
index 0000000..1f30885
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 8)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 -T 0 1 1 2 2 .5
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 1.56786e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug1477_9 b/tests/bugs/modalg/bug1477_9
new file mode 100644 (file)
index 0000000..5590bcc
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC1477"
+puts "============"
+puts ""
+######################################################
+# Problems in MakePipeShell
+# (case 9)
+######################################################
+
+restore [locate_data_file OCC1477-1.brep] s1 
+restore [locate_data_file OCC1477-2.brep] s2 
+
+checkshape s1
+checkshape s2
+
+mksweep s1
+
+addsweep s2 0 1 1 2 2 .5
+
+if { [catch {buildsweep result -C} catch_result] } {
+    puts "Faulty OCC1477"
+}
+
+set square 0
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug165_4 b/tests/bugs/modalg/bug165_4
new file mode 100644 (file)
index 0000000..49c2d68
--- /dev/null
@@ -0,0 +1,83 @@
+puts "TODO OCC11111 ALL: An exception was caught"
+puts "TODO OCC11111 ALL: Exception"
+puts "TODO OCC11111 ALL: Faulty OCC165"
+puts "TODO OCC11111 ALL: Error : The length of result shape is"
+
+cpulimit 600
+
+puts "========"
+puts "OCC165"
+puts "========"
+puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
+
+
+dchrono h reset
+dchrono h start
+
+restore [locate_data_file offset_wire_019.brep] a 
+checkshape a
+
+mkplane f a
+checkshape f
+
+set start_stepoffset -5.7
+set incr_stepoffset 0.1
+set finish_stepoffset -2.8
+
+set interval_numb [expr int ( ($finish_stepoffset - $start_stepoffset) / $incr_stepoffset ) + 1]
+
+set IsMade 0
+set IsBeginMade 0
+set IsGood 1
+set i 0
+set resume_string ""
+for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set stepoffset [expr $stepoffset + $incr_stepoffset]} {
+    incr i
+    puts "i = $i"
+    if { [catch {mkoffset result f 1 $stepoffset } catch_result] } {
+        puts "Faulty OCC165 (stepoffset = $stepoffset) : function MKOFFSET works wrongly"
+        set IsGood 0
+        set IsMade 0
+    } else {
+        puts "OK OCC165 (stepoffset = $stepoffset)"
+        set IsMade 1
+    }
+    if {$IsBeginMade == 0 && $IsMade == 1} {
+        set IsBeginMade 1
+        set BeginStepOffset $stepoffset
+    }
+    if {$IsMade == 1} {
+        set FinishStepOffset $stepoffset
+    }
+
+    dchrono h show
+
+    if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
+        set IsBeginMade 0
+        set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
+        set resume_string "${resume_string}${resume_tmp}"
+    }
+}
+
+puts ""
+if {[string length $resume_string] == 0} {
+    puts "Offset is created wrongly on initial shape in following borders"
+    puts "from [format "%0.2f" $start_stepoffset] till [format "%0.2f" $finish_stepoffset]"
+} else {
+    puts "Offset is created correctly on initial shape in following borders"
+    puts "$resume_string"
+}
+
+if {$IsGood == 1} {
+    puts "OCC165 OK"
+} else {
+    puts "Faulty OCC165"
+}
+
+dchrono h stop
+dchrono h show
+
+renamevar result_1 result
+
+set length 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug165_5 b/tests/bugs/modalg/bug165_5
new file mode 100644 (file)
index 0000000..4437242
--- /dev/null
@@ -0,0 +1,77 @@
+cpulimit 600
+
+puts "========"
+puts "OCC165"
+puts "========"
+puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
+
+dchrono h reset
+dchrono h start
+
+restore [locate_data_file offset_wire_019.brep] a 
+checkshape a
+
+mkplane f a
+checkshape f
+
+set start_stepoffset -2.6
+set incr_stepoffset 0.1
+set finish_stepoffset 0.0
+
+set interval_numb [expr int ( ($finish_stepoffset - $start_stepoffset) / $incr_stepoffset ) + 1]
+
+set IsMade 0
+set IsBeginMade 0
+set IsGood 1
+set i 0
+set resume_string ""
+for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set stepoffset [expr $stepoffset + $incr_stepoffset]} {
+    incr i
+    puts "i = $i"
+    if { [catch {mkoffset result f 1 $stepoffset } catch_result] } {
+        puts "Faulty OCC165 (stepoffset = $stepoffset) : function MKOFFSET works wrongly"
+        set IsGood 0
+        set IsMade 0
+    } else {
+        puts "OK OCC165 (stepoffset = $stepoffset)"
+        set IsMade 1
+    }
+    if {$IsBeginMade == 0 && $IsMade == 1} {
+        set IsBeginMade 1
+        set BeginStepOffset $stepoffset
+    }
+    if {$IsMade == 1} {
+        set FinishStepOffset $stepoffset
+    }
+
+    dchrono h show
+
+    if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
+        set IsBeginMade 0
+        set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
+        set resume_string "${resume_string}${resume_tmp}"
+    }
+}
+
+puts ""
+if {[string length $resume_string] == 0} {
+    puts "Offset is created wrongly on initial shape in following borders"
+    puts "from [format "%0.2f" $start_stepoffset] till [format "%0.2f" $finish_stepoffset]"
+} else {
+    puts "Offset is created correctly on initial shape in following borders"
+    puts "$resume_string"
+}
+
+if {$IsGood == 1} {
+    puts "OCC165 OK"
+} else {
+    puts "Faulty OCC165"
+}
+
+dchrono h stop
+dchrono h show
+
+renamevar result_1 result
+
+set length 1081.52
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug165_6 b/tests/bugs/modalg/bug165_6
new file mode 100644 (file)
index 0000000..aeb8121
--- /dev/null
@@ -0,0 +1,83 @@
+puts "TODO ?OCC11111 ALL: An exception was caught"
+puts "TODO ?OCC11111 ALL: Exception"
+puts "TODO ?OCC11111 ALL: Faulty OCC165"
+puts "TODO ?OCC11111 ALL: Error : The length of result shape is"
+
+cpulimit 600
+
+puts "========"
+puts "OCC165"
+puts "========"
+puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
+
+
+dchrono h reset
+dchrono h start
+
+restore [locate_data_file offset_wire_019.brep] a 
+checkshape a
+
+mkplane f a
+checkshape f
+
+set start_stepoffset 0.2
+set incr_stepoffset 0.1
+set finish_stepoffset 4.9
+
+set interval_numb [expr int ( ($finish_stepoffset - $start_stepoffset) / $incr_stepoffset ) + 1]
+
+set IsMade 0
+set IsBeginMade 0
+set IsGood 1
+set i 0
+set resume_string ""
+for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set stepoffset [expr $stepoffset + $incr_stepoffset]} {
+    incr i
+    puts "i = $i"
+    if { [catch {mkoffset result f 1 $stepoffset } catch_result] } {
+        puts "Faulty OCC165 (stepoffset = $stepoffset) : function MKOFFSET works wrongly"
+        set IsGood 0
+        set IsMade 0
+    } else {
+        puts "OK OCC165 (stepoffset = $stepoffset)"
+        set IsMade 1
+    }
+    if {$IsBeginMade == 0 && $IsMade == 1} {
+        set IsBeginMade 1
+        set BeginStepOffset $stepoffset
+    }
+    if {$IsMade == 1} {
+        set FinishStepOffset $stepoffset
+    }
+
+    dchrono h show
+
+    if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
+        set IsBeginMade 0
+        set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
+        set resume_string "${resume_string}${resume_tmp}"
+    }
+}
+
+puts ""
+if {[string length $resume_string] == 0} {
+    puts "Offset is created wrongly on initial shape in following borders"
+    puts "from [format "%0.2f" $start_stepoffset] till [format "%0.2f" $finish_stepoffset]"
+} else {
+    puts "Offset is created correctly on initial shape in following borders"
+    puts "$resume_string"
+}
+
+if {$IsGood == 1} {
+    puts "OCC165 OK"
+} else {
+    puts "Faulty OCC165"
+}
+
+renamevar result_1 result
+
+set length 1112.83
+set 2dviewer 0
+
+dchrono h stop
+dchrono h show
diff --git a/tests/bugs/modalg/bug165_7 b/tests/bugs/modalg/bug165_7
new file mode 100644 (file)
index 0000000..c2fd0a3
--- /dev/null
@@ -0,0 +1,77 @@
+cpulimit 600
+
+puts "========"
+puts "OCC165"
+puts "========"
+puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
+
+dchrono h reset
+dchrono h start
+
+restore [locate_data_file offset_wire_019.brep] a 
+checkshape a
+
+mkplane f a
+checkshape f
+
+set start_stepoffset 5.1
+set incr_stepoffset 0.1
+set finish_stepoffset 6.3
+
+set interval_numb [expr int ( ($finish_stepoffset - $start_stepoffset) / $incr_stepoffset ) + 1]
+
+set IsMade 0
+set IsBeginMade 0
+set IsGood 1
+set i 0
+set resume_string ""
+for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set stepoffset [expr $stepoffset + $incr_stepoffset]} {
+    incr i
+    puts "i = $i"
+    if { [catch {mkoffset result f 1 $stepoffset } catch_result] } {
+        puts "Faulty OCC165 (stepoffset = $stepoffset) : function MKOFFSET works wrongly"
+        set IsGood 0
+        set IsMade 0
+    } else {
+        puts "OK OCC165 (stepoffset = $stepoffset)"
+        set IsMade 1
+    }
+    if {$IsBeginMade == 0 && $IsMade == 1} {
+        set IsBeginMade 1
+        set BeginStepOffset $stepoffset
+    }
+    if {$IsMade == 1} {
+        set FinishStepOffset $stepoffset
+    }
+
+    dchrono h show
+
+    if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
+        set IsBeginMade 0
+        set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
+        set resume_string "${resume_string}${resume_tmp}"
+    }
+}
+
+puts ""
+if {[string length $resume_string] == 0} {
+    puts "Offset is created wrongly on initial shape in following borders"
+    puts "from [format "%0.2f" $start_stepoffset] till [format "%0.2f" $finish_stepoffset]"
+} else {
+    puts "Offset is created correctly on initial shape in following borders"
+    puts "$resume_string"
+}
+
+if {$IsGood == 1} {
+    puts "OCC165 OK"
+} else {
+    puts "Faulty OCC165"
+}
+
+renamevar result_1 result
+
+set length 1113.06
+set 2dviewer 0
+
+dchrono h stop
+dchrono h show
diff --git a/tests/bugs/modalg/bug2083_1 b/tests/bugs/modalg/bug2083_1
new file mode 100644 (file)
index 0000000..1149afa
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC2083"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakePipeShell throws an exception
+######################################################
+
+restore [locate_data_file OCC2083-f1.brep] f1 
+restore [locate_data_file OCC2083-f2.brep] f2 
+restore [locate_data_file OCC2083-w.brep] s 
+
+checkshape f1
+checkshape f2
+checkshape s
+
+explode f1 w
+explode f2 w
+mksweep s
+addsweep f1_1
+addsweep f2_1
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC2083"
+}
+
+set square 36302.3
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug2083_2 b/tests/bugs/modalg/bug2083_2
new file mode 100644 (file)
index 0000000..f9c0386
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC2083"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakePipeShell throws an exception
+######################################################
+
+restore [locate_data_file OCC2083-f1.brep] f1 
+restore [locate_data_file OCC2083-f2.brep] f2 
+restore [locate_data_file OCC2083-w.brep] s 
+
+checkshape f1
+checkshape f2
+checkshape s
+
+explode f1 w
+explode f2 w
+mksweep s
+addsweep f1_1 -T
+addsweep f2_1 -T
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC2083"
+}
+
+set square 36583.8
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2083_3 b/tests/bugs/modalg/bug2083_3
new file mode 100644 (file)
index 0000000..3865579
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC2083"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakePipeShell throws an exception
+######################################################
+
+restore [locate_data_file OCC2083-f1.brep] f1 
+restore [locate_data_file OCC2083-f2.brep] f2 
+restore [locate_data_file OCC2083-w.brep] s 
+
+checkshape f1
+checkshape f2
+checkshape s
+
+explode f1 w
+explode f2 w
+mksweep s
+addsweep f1_1 -T
+addsweep f2_1
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC2083"
+}
+
+set square 36546.8
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2083_4 b/tests/bugs/modalg/bug2083_4
new file mode 100644 (file)
index 0000000..ea963c5
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC2083"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakePipeShell throws an exception
+######################################################
+
+restore [locate_data_file OCC2083-f1.brep] f1 
+restore [locate_data_file OCC2083-f2.brep] f2 
+restore [locate_data_file OCC2083-w.brep] s 
+
+checkshape f1
+checkshape f2
+checkshape s
+
+explode f1 w
+explode f2 w
+mksweep s
+addsweep f1_1
+addsweep f2_1 -T
+
+if { [catch {buildsweep result} catch_result] } {
+    puts "Faulty OCC2083"
+}
+
+set square 36339.5
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2172_1 b/tests/bugs/modalg/bug2172_1
new file mode 100644 (file)
index 0000000..2ce9f61
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC2172"
+puts "============"
+puts ""
+######################################################
+# Fuse operation produces invalid shape
+######################################################
+## (new topology)
+## (bfuse)
+######################################################
+
+restore [locate_data_file OCC2172-torus.brep] torus 
+restore [locate_data_file OCC2172-cylinder.brep] cylinder 
+
+checkshape torus
+checkshape cylinder
+
+bfuse result torus cylinder
+
+set square 28603.8
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2172_2 b/tests/bugs/modalg/bug2172_2
new file mode 100644 (file)
index 0000000..cdda117
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC2172"
+puts "============"
+puts ""
+######################################################
+# Fuse operation produces invalid shape
+######################################################
+## (new topology)
+## (bfuse)
+######################################################
+
+restore [locate_data_file OCC2172-torus.brep] torus 
+restore [locate_data_file OCC2172-cylinder.brep] cylinder 
+
+checkshape torus
+checkshape cylinder
+
+bfuse result cylinder torus
+
+set square 28603.8
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2172_3 b/tests/bugs/modalg/bug2172_3
new file mode 100644 (file)
index 0000000..e950a60
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC2172"
+puts "============"
+puts ""
+######################################################
+# Fuse operation produces invalid shape
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+restore [locate_data_file OCC2172-torus.brep] torus 
+restore [locate_data_file OCC2172-cylinder.brep] cylinder 
+
+checkshape torus
+checkshape cylinder
+
+if { [catch {bfuse result torus cylinder} catch_result] } {
+    puts "Faulty OCC2172"
+}
+
+set square 28603.8
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2172_4 b/tests/bugs/modalg/bug2172_4
new file mode 100644 (file)
index 0000000..d28938b
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC2172"
+puts "============"
+puts ""
+######################################################
+# Fuse operation produces invalid shape
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+restore [locate_data_file OCC2172-torus.brep] torus 
+restore [locate_data_file OCC2172-cylinder.brep] cylinder 
+
+checkshape torus
+checkshape cylinder
+
+if { [catch {bfuse result cylinder torus} catch_result] } {
+    puts "Faulty OCC2172"
+}
+
+set square 28603.8
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug260 b/tests/bugs/modalg/bug260
new file mode 100644 (file)
index 0000000..bdb0035
--- /dev/null
@@ -0,0 +1,20 @@
+#INTERFACE IGES
+puts "========"
+puts "OCC260"
+puts "========"
+
+pload XDE
+
+if { [catch { igesbrep [locate_data_file OCC260.igs] a * } catch_result] } {
+    puts "OCC260: Error: there is reading problem"
+} else {
+    regexp {([-0-9.+eE]+) Shape\(s\) listed} [tpcompound result] full ShapeNumber
+    if {${ShapeNumber} > 0} {
+       puts "OCC260: OK"
+    } else {
+       puts "OCC260: Error"
+    }
+}
+
+set length 4.41928
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug263 b/tests/bugs/modalg/bug263
new file mode 100644 (file)
index 0000000..35d5f52
--- /dev/null
@@ -0,0 +1,30 @@
+puts "TODO OCC11111 ALL: Faulty OCC263: here is shading problem"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC263"
+puts "========"
+
+restore [locate_data_file OCC263.brep] result
+
+isos result 0
+tclean result
+
+#Creating mesh
+incmesh result 0.01
+
+#View the result of mesh
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri != 989 && $nod != 535 }  {
+    puts "Faulty OCC263: here is shading problem"
+} else {
+    puts "Shading of OCC263  is OK"
+}
+
+set square 0
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug264_12 b/tests/bugs/modalg/bug264_12
new file mode 100644 (file)
index 0000000..ce6cf1a
--- /dev/null
@@ -0,0 +1,33 @@
+puts "TODO OCC11111 ALL: Faulty OCC264_12: here is shading problem"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC264"
+puts " (case 12)"
+puts "========"
+
+restore [locate_data_file OCC264_12.brep] result
+
+tclean result
+vinit
+vdisplay result
+vclear
+
+isos res 0
+triangles result
+
+#smallview
+#fit
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri != 19 && $nod != 21 }  {
+    puts "Faulty OCC264_12: here is shading problem"
+} else {
+    puts "Shading of OCC264_12 is OK"
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug2785_1 b/tests/bugs/modalg/bug2785_1
new file mode 100644 (file)
index 0000000..42b70ff
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC2785"
+puts "============"
+puts ""
+######################################################
+# Cut and fuse operations for two faces that share same domain give invalid result
+######################################################
+# Cut and fuse operations for two faces that share same domain gives invalid
+# result, if one face has a hole and other face touches a boundary of this hole.
+######################################################
+## (new topology)
+## (bcut)
+## (bop)
+## (boptuc)
+## (bfuse)
+######################################################
+
+############# data #############
+pcylinder c1 2 10
+pcylinder c2 2 2
+explode c1 f
+explode c2 f
+mksurface gs c2_1
+trim trgs gs 1 2 2 4
+mkface ff trgs
+trim trgs gs 0 1 2 4
+mkface ff2 trgs
+
+bcut rcut1 c1_1 ff
+checkshape rcut1
+
+bop ff2 rcut1
+boptuc rcut2
+checkshape rcut2
+
+bfuse fuse1 rcut2 ff2
+checkshape fuse1
+
+bfuse result fuse1 ff
+
+set square 125.664
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug2785_2 b/tests/bugs/modalg/bug2785_2
new file mode 100644 (file)
index 0000000..93a13db
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC2785"
+puts "============"
+puts ""
+######################################################
+# Cut and fuse operations for two faces that share same domain give invalid result
+######################################################
+# Cut and fuse operations for two faces that share same domain gives invalid
+# result, if one face has a hole and other face touches a boundary of this hole.
+######################################################
+## (old topology)
+## (cut)
+## (fuse)
+######################################################
+
+############# data #############
+pcylinder c1 2 10
+pcylinder c2 2 2
+explode c1 f
+explode c2 f
+mksurface gs c2_1
+trim trgs gs 1 2 2 4
+mkface ff trgs
+trim trgs gs 0 1 2 4
+mkface ff2 trgs
+
+bcut rcut1 c1_1 ff
+checkshape rcut1
+
+bcut rcut2 rcut1 ff2
+checkshape rcut2
+
+bfuse fuse1 rcut2 ff2
+checkshape fuse1
+
+bfuse result fuse1 ff
+
+set square 125.664
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2986_1 b/tests/bugs/modalg/bug2986_1
new file mode 100644 (file)
index 0000000..4201444
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC2986"
+puts "============"
+puts ""
+######################################################
+# Cut&fuse oprs. for 2 toroidal faces, sharing the same domain give invalid result 
+######################################################
+## (new topology)
+## (bop)
+## (bopcut)
+## (bfuse)
+######################################################
+
+############# data #############
+ptorus p1 10 4
+explode p1 f
+mksurface gs p1_1
+trim trgs gs 1 2 1 2
+mkface ff trgs
+############# testing faces are: p1_1 ff #############
+
+bop p1_1 ff
+bopcut rcut1
+checkshape rcut1
+
+bfuse result rcut1 ff
+
+set square 1579.81
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug2986_2 b/tests/bugs/modalg/bug2986_2
new file mode 100644 (file)
index 0000000..a1f5664
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC2986"
+puts "============"
+puts ""
+######################################################
+# Cut&fuse oprs. for 2 toroidal faces, sharing the same domain give invalid result 
+######################################################
+## (old topology)
+## (cut)
+## (fuse)
+######################################################
+
+############# data #############
+ptorus p1 10 4
+explode p1 f
+mksurface gs p1_1
+trim trgs gs 1 2 1 2
+mkface ff trgs
+
+bcut rcut1 p1_1 ff
+checkshape rcut1
+
+bfuse result rcut1 ff
+
+set square 1579.81
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug369 b/tests/bugs/modalg/bug369
new file mode 100644 (file)
index 0000000..c514c42
--- /dev/null
@@ -0,0 +1,20 @@
+pload QAcommands
+
+puts "========"
+puts "OCC369"
+puts "BUC61031"
+puts "========"
+puts ""
+#################################################################
+## BndLib_Add3dCurve raised an exception on edges which range is out of the domain of the curve.
+#################################################################
+
+restore [locate_data_file OCC369.brep] result 
+OCC369 result
+
+set square 0.077223
+set 2dviewer 0
+
+
+
+
diff --git a/tests/bugs/modalg/bug400 b/tests/bugs/modalg/bug400
new file mode 100644 (file)
index 0000000..fcdc413
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO OCC11111 ALL: OCC358 : Faulty"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC400 "
+puts "========================"
+
+restore [locate_data_file OCC400.brep] result
+
+tclean result
+isos result 0
+
+vinit
+vdisplay result
+vfit
+vsetdispmode result 1
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri == 66 && $nod ==70} {
+    puts " Warning:  OCC358  looks like OK, but visual checking is required !!!!"
+} else {
+    puts "OCC358 : Faulty , but visual checking is required !!!!"
+}
+
+set square 0
+set 3dviewer 1
+
+
diff --git a/tests/bugs/modalg/bug405 b/tests/bugs/modalg/bug405
new file mode 100644 (file)
index 0000000..612f2ba
--- /dev/null
@@ -0,0 +1,27 @@
+pload QAcommands
+
+puts "================"
+puts "OCC405"
+puts "OCC435"
+puts "SAM1296"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC395-1.brep] e1 
+restore [locate_data_file OCC405-2.brep] e2 
+
+checkshape e1
+checkshape e2
+
+OCC405 result e1 e2
+
+regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection result] full num
+
+if { $num == 2 } {
+    puts "OCC405 OK : Result shape is CORRECT !!! "
+} else {
+    puts " Faulty OCC405: Result shape is INcorrect !!! "
+}
+
+set length 17.5348
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug426_1 b/tests/bugs/modalg/bug426_1
new file mode 100644 (file)
index 0000000..a6b43d1
--- /dev/null
@@ -0,0 +1,26 @@
+puts "TODO OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "========"
+puts "OCC426"
+puts "OCC50"
+puts "========"
+#############################################################################
+## The result of fuse operation is invalid
+#############################################################################
+## BRepFilletAPI_MakeFillet presents a bug on fillet computation (build())
+#############################################################################
+
+OCC426 result rs1 rs2 rs3 fuse32 fuse321
+
+checkshape rs1
+checkshape rs2
+checkshape rs3
+checkshape fuse32
+checkshape fuse321
+
+set square 7507.61
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug434 b/tests/bugs/modalg/bug434
new file mode 100644 (file)
index 0000000..65aa2e1
--- /dev/null
@@ -0,0 +1,29 @@
+pload QAcommands
+
+puts "================"
+puts "OCC434"
+puts "SAM1296"
+puts "================"
+puts ""
+
+########################################################
+## Exception is raised on NT, SUN in the GeomConvert_CompCurveToBSplineCurve
+########################################################
+
+restore [locate_data_file OCC434.brep] e 
+checkshape e
+explode e e
+
+OCC405 result e_1 e_2
+
+regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection result] full num
+
+if { $num == 2 } {
+    puts "OCC434 OK : Result shape is CORRECT !!! "
+} else {
+    puts " Faulty OCC434: Result shape is INcorrect !!! "
+}
+
+set length 8.74616
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug435 b/tests/bugs/modalg/bug435
new file mode 100644 (file)
index 0000000..2b126e9
--- /dev/null
@@ -0,0 +1,28 @@
+pload QAcommands
+
+#INTERFACE IGES
+puts "========================"
+puts " OCC435 "
+puts " OCC405 "
+puts "========================"
+puts ""
+###############################################################
+## Exception Standard_ConstructuionError is rased in DRAW in the
+## GeomConvert_CompCurveToBSplineCurve on the attached shapes during command merge
+###############################################################
+
+restore [locate_data_file OCC435a.brep] a 
+explode a
+set j 1
+repeat 8 {
+    explode a_$j
+    if { [catch {OCC405 result a_${j}_1 a_${j}_2} catch_result] } {
+       puts "Faulty  OCC435 : merge operation was made incorrect"
+    } else {
+       puts " OCC435 OK:  merge operation was made properly"
+    }
+    incr j
+} 
+
+set length 17.2848
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug5157_1 b/tests/bugs/modalg/bug5157_1
new file mode 100644 (file)
index 0000000..c34d06e
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC5157"
+puts "============"
+puts ""
+######################################################
+# DRAW commands vprops and sprops with tolerance 1.e-6 hange on attached shape.
+######################################################
+
+cpulimit 3500
+#dchrono h reset; dchrono h start
+
+catch { pload XDE }
+
+set BugNumber OCC5157
+
+set status 0
+if {[catch { stepread [locate_data_file OCC5157.stp] a * } catch_result] } {
+    puts "Faulty ${BugNumber} : here is reading problem"
+} else {
+    tpcompound result
+}
+
+set tol_square 1.e-6
+set square 35273.9
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug5157_2 b/tests/bugs/modalg/bug5157_2
new file mode 100644 (file)
index 0000000..63b1821
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC5157"
+puts "============"
+puts ""
+######################################################
+# DRAW commands vprops and sprops with tolerance 1.e-6 hange on attached shape.
+######################################################
+
+cpulimit 3500
+#dchrono h reset; dchrono h start
+
+catch { pload XDE }
+
+set BugNumber OCC5157
+
+if { [catch { stepread [locate_data_file OCC5157.stp] a * } catch_result] } {
+    puts "Faulty ${BugNumber} : here is reading problem"
+} else {
+    tpcompound result
+}
+set tol_square 1.e-6
+set square 35362.3
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug570 b/tests/bugs/modalg/bug570
new file mode 100644 (file)
index 0000000..6066927
--- /dev/null
@@ -0,0 +1,11 @@
+pload QAcommands
+
+puts "========"
+puts "OCC570"
+puts "========"
+puts ""
+
+OCC570 result
+
+set square 58500
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug5729 b/tests/bugs/modalg/bug5729
new file mode 100644 (file)
index 0000000..a594ca7
--- /dev/null
@@ -0,0 +1,41 @@
+puts "============"
+puts "OCC5729"
+puts "============"
+puts ""
+######################################################
+# Regression on case cfe 900 K5
+######################################################
+
+set BugNumber OCC5729
+
+restore [locate_data_file OCC5729-f1.brep] f1 
+restore [locate_data_file OCC5729-f2.brep] f2 
+
+decho off
+set che_1 [checkshape f1]
+decho on
+if { [regexp {Faulty} $che_1] } {
+   puts "Faulty ${BugNumber} : checkshape is wrong for f1"
+}
+
+decho off
+set che_2 [checkshape f2]
+decho on
+if { [regexp {Faulty} $che_2] } {
+   puts "Faulty ${BugNumber} : checkshape is wrong for f2"
+}
+
+bfuse result f1 f2
+
+set square 28559.8
+
+set nb_v_good 13
+set nb_e_good 22
+set nb_w_good 15
+set nb_f_good 13
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 66
+
diff --git a/tests/bugs/modalg/bug578_1 b/tests/bugs/modalg/bug578_1
new file mode 100644 (file)
index 0000000..3993d65
--- /dev/null
@@ -0,0 +1,25 @@
+puts "================"
+puts "OCC578"
+puts "OCC584"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC578_w1.brep] w1 
+checkshape w1
+
+restore [locate_data_file OCC578_w2.brep] w2 
+checkshape w2
+
+set x 1
+set y 1
+set z 0.5
+box b ${x} ${y} ${z}
+checkshape b
+
+bfuse res1 w1 w2
+checkshape res1
+
+bcut result b res1
+
+set square 4.84596
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug578_2 b/tests/bugs/modalg/bug578_2
new file mode 100644 (file)
index 0000000..89e1928
--- /dev/null
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC578"
+puts "OCC582"
+puts "OCC583"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC578_w1.brep] w1 
+checkshape w1
+
+restore [locate_data_file OCC578_w2.brep] w2 
+checkshape w2
+
+set x 1
+set y 1
+set z 0.5
+box b ${x} ${y} ${z}
+checkshape b
+
+bfuse res1 w1 w2
+checkshape res1
+
+bop b res1
+bopcut result
+
+set square 4.84596
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug5805_1 b/tests/bugs/modalg/bug5805_1
new file mode 100644 (file)
index 0000000..ccde342
--- /dev/null
@@ -0,0 +1,59 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+######################################################
+
+set BugNumber OCC5805
+
+puts "demonstration of pipes and hollowing for GTISoft"
+puts ""
+puts "Scenario 2A: Hollowed elliptical cylinder - ThroughSection and MakeThickSolid (work-around: ellipse is split into 2)"
+
+
+ellipse e 10 60 0 1 0 0 5 3
+trim e1 e 0 pi
+trim e2 e pi 2*pi
+mkedge ee1 e1
+mkedge ee2 e2
+wire w1 ee1 ee2
+copy w1 w2
+ttranslate w2 -20 0 0
+
+if { [catch { thrusections rthru2 1 1 w1 w2 } catch_result] } {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+}
+
+explode rthru2 f
+
+if { [catch { offsetshape result rthru2 -0.5 rthru2_3 rthru2_4 } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result] } {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)."
+}
+
+set square 981.941
+
+set nb_v_good 6
+set nb_e_good 10
+set nb_w_good 8
+set nb_f_good 6
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 32
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_2 b/tests/bugs/modalg/bug5805_2
new file mode 100644 (file)
index 0000000..b9739e9
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+######################################################
+
+set BugNumber OCC5805
+
+puts "demonstration of pipes and hollowing for GTISoft"
+puts ""
+puts "Scenario 2A: Hollowed elliptical cylinder - ThroughSection and MakeThickSolid"
+
+ellipse e 10 60 0 1 0 0 5 3
+mkedge ee e
+wire w1 ee
+copy w1 w2
+ttranslate w2 -20 0 0
+
+if { [catch { thrusections rthru2 1 1 w1 w2 } catch_result] } {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+}
+
+explode rthru2 f
+
+if { [catch { offsetshape result rthru2 -0.5 rthru2_2 rthru2_3 } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result] } {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } catch_result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)."
+}
+
+set square 982.254
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 6
+set nb_f_good 4
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 20
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_3 b/tests/bugs/modalg/bug5805_3
new file mode 100644 (file)
index 0000000..44313f3
--- /dev/null
@@ -0,0 +1,50 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+######################################################
+
+set BugNumber OCC5805
+
+restore [locate_data_file OCC5805.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+
+explode a f
+
+if { [catch { offsetshape result a -1 a_6 } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result] } {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } catch_result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)."
+}
+
+set square 1185.03
+
+set nb_v_good 10
+set nb_e_good 15
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 41
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_4 b/tests/bugs/modalg/bug5805_4
new file mode 100644 (file)
index 0000000..c5a54e1
--- /dev/null
@@ -0,0 +1,53 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+######################################################
+
+set BugNumber OCC5805
+
+restore [locate_data_file OCC5805.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+
+explode a f
+
+offsetparameter 1e-7 c a
+offsetload a -1 a_6
+
+if { [catch { offsetperform result } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result] } {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } catch_result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)."
+}
+
+set square 1185.03
+
+set nb_v_good 10
+set nb_e_good 15
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 41
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_5 b/tests/bugs/modalg/bug5805_5
new file mode 100644 (file)
index 0000000..341e0c0
--- /dev/null
@@ -0,0 +1,52 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+######################################################
+
+set BugNumber OCC5805
+
+restore [locate_data_file OCC5805.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+
+explode a f
+
+offsetparameter 1e-7 c a
+offsetload a -1
+
+if { [catch { offsetperform result } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result]} {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } catch_result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)."
+}
+
+set square 876.584
+
+set nb_v_good 10
+set nb_e_good 15
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 41
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_6 b/tests/bugs/modalg/bug5805_6
new file mode 100644 (file)
index 0000000..44e88f5
--- /dev/null
@@ -0,0 +1,47 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+######################################################
+
+set BugNumber OCC5805
+
+restore [locate_data_file OCC5805.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+
+if { [catch { offsetshape result a -1 } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result] } {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } catch_result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)"
+}
+
+set square 876.584
+
+set nb_v_good 10
+set nb_e_good 15
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 41
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5806 b/tests/bugs/modalg/bug5806
new file mode 100644 (file)
index 0000000..16eec40
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC5806"
+puts "============"
+puts ""
+######################################################
+# BRepOffsetAPI_MakeThickSolid fails to build a result
+######################################################
+
+set BugNumber OCC5806
+
+puts "demonstration of pipes and hollowing for GTISoft"
+puts ""
+puts "Scenario 3A: Hollowed general pipe - ThroughSection with following shell reconstruction"
+
+circle c 0 100 0 1 0 0 5 
+mkedge ec c
+wire wc ec
+polyline pl 10 90 -10  10 90 10  10 110 10  10 110 -10  10 90 -10
+
+if { [catch { thrusections resthru 1 1 wc pl } catch_result] } {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+}
+
+# straighforward hollowing will fail due to problems in the algorithm
+explode resthru f
+
+if { [catch { offsetshape result resthru -0.5 resthru_6 resthru_7 } catch_result] } {
+   puts "Faulty ${BugNumber} : offsetshape is wrong"
+}
+
+if { [catch { set tolmaxres [tolmax result] } catch_result] } {
+   puts "Faulty ${BugNumber} : tolmax is wrong"
+}
+regexp {max tol = ([-0-9.+eE]+)} $tolmaxres full maxtolerance
+if { [catch { expr $maxtolerance } catch_result] } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (1)."
+}
+if { $maxtolerance > 1. } {
+   puts "Faulty ${BugNumber} : maxtolerance is wrong (2)."
+}
+
+set square 1116.06
+
+set nb_v_good 10
+set nb_e_good 15
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 41
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6063 b/tests/bugs/modalg/bug6063
new file mode 100644 (file)
index 0000000..d397d8c
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC6063"
+puts "============"
+puts ""
+######################################################
+# Exception is raised during command "sprops" in DRAW on attached shape.
+######################################################
+
+set BugNumber OCC6063
+cpulimit 2000
+
+restore [locate_data_file OCC6063-2.brep] result
+
+decho off
+set che_res [checkshape result]
+decho on
+if { [regexp {Faulty} $che_res] } {
+   puts "Faulty ${BugNumber} : checkshape is wrong for res"
+}
+
+set tol_square 1.e-6
+set square 2465.96
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6063_1 b/tests/bugs/modalg/bug6063_1
new file mode 100644 (file)
index 0000000..a29cf8e
--- /dev/null
@@ -0,0 +1,19 @@
+puts "============"
+puts "OCC6063"
+puts "============"
+puts ""
+######################################################
+# Exception is raised during command "sprops" in DRAW on attached shape.
+######################################################
+
+set BugNumber OCC6063
+
+restore [locate_data_file OCC6063.brep] result
+
+checkshape result
+
+set tol_square 1.e-6
+set square 413318
+set 3dviewer 1
+
+
diff --git a/tests/bugs/modalg/bug606_1 b/tests/bugs/modalg/bug606_1
new file mode 100644 (file)
index 0000000..c8a50d5
--- /dev/null
@@ -0,0 +1,14 @@
+pload QAcommands
+
+puts "================"
+puts "OCC606"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC606_2.brep] w2 
+checkshape w2
+
+OCC606 result w2 -t
+
+set square 508.243
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug606_2 b/tests/bugs/modalg/bug606_2
new file mode 100644 (file)
index 0000000..4fabb19
--- /dev/null
@@ -0,0 +1,14 @@
+pload QAcommands
+
+puts "================"
+puts "OCC606"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC606_10.brep] w10 
+checkshape w10
+
+OCC606 result w10 -t
+
+set square 522.56
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug6181 b/tests/bugs/modalg/bug6181
new file mode 100644 (file)
index 0000000..5a5667d
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC6181"
+puts "============"
+puts ""
+######################################################
+# Incorrect result of boolean cut
+######################################################
+
+set BugNumber OCC6181
+
+restore [locate_data_file OCC6181_A.brep] s1 
+restore [locate_data_file OCC6181_B.brep] s2 
+
+decho off
+set che_s1 [checkshape s1]
+set che_s2 [checkshape s2]
+decho on
+if { [regexp {Faulty} $che_s1] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s1"
+}
+
+if { [regexp {Faulty} $che_s2] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s2"
+}
+
+bcut result s1 s2
+
+set square 151691
+
+set nb_v_good 14
+set nb_e_good 21
+set nb_w_good 9
+set nb_f_good 9
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 56
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6182 b/tests/bugs/modalg/bug6182
new file mode 100644 (file)
index 0000000..f0b1277
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC6182"
+puts "============"
+puts ""
+######################################################
+# Incorrect result of boolean cut
+######################################################
+
+set BugNumber OCC6182
+
+restore [locate_data_file OCC6182_A.brep] s1 
+restore [locate_data_file OCC6182_B.brep] s2 
+
+decho off
+set che_s1 [checkshape s1]
+set che_s2 [checkshape s2]
+decho on
+if { [regexp {Faulty} $che_s1] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s1"
+}
+if { [regexp {Faulty} $che_s2] } {
+        puts "Faulty ${BugNumber} : checkshape is wrong for s2"
+}
+        
+bcut result s1 s2
+
+set square 318709
+
+set nb_v_good 316
+set nb_e_good 502
+set nb_w_good 185
+set nb_f_good 181
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 1187
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_1 b/tests/bugs/modalg/bug6272_1
new file mode 100644 (file)
index 0000000..c162845
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO OCC111111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC111111 ALL: Error : The square of result shape is"
+pload QAcommands
+
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+restore [locate_data_file OCC6272_revolution.brep] a2 
+
+OCC307 result a1 a2 0
+
+set square 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_2 b/tests/bugs/modalg/bug6272_2
new file mode 100644 (file)
index 0000000..0d527f4
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO OCC111111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC111111 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+restore [locate_data_file OCC6272_revolution.brep] a2 
+
+OCC307 result a1 a2 1
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_3 b/tests/bugs/modalg/bug6272_3
new file mode 100644 (file)
index 0000000..d4b9253
--- /dev/null
@@ -0,0 +1,23 @@
+puts "TODO OCC111111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC111111 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+explode a1
+OCC307 result a1_1 a1_2 0
+
+set square 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_4 b/tests/bugs/modalg/bug6272_4
new file mode 100644 (file)
index 0000000..99883aa
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO OCC111111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC111111 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+explode a1
+OCC307 result a1_1 a1_2 1
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_5 b/tests/bugs/modalg/bug6272_5
new file mode 100644 (file)
index 0000000..fc46efe
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+explode a1
+
+bop a1_1 a1_2
+bopfuse result
+
+set square 6552.67
+
+# Analysis of "nbshapes res"
+set nb_v_good 116
+set nb_e_good 176
+set nb_w_good 72
+set nb_f_good 70
+set nb_sh_good 5
+set nb_sol_good 5
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 445
+
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug6272_6 b/tests/bugs/modalg/bug6272_6
new file mode 100644 (file)
index 0000000..2d85e74
--- /dev/null
@@ -0,0 +1,35 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+restore [locate_data_file OCC6272_revolution.brep] a2 
+
+bop a1 a2
+bopfuse result
+
+# puts "See result in the viewer!!!"
+
+set square 8979.70
+
+# Analysis of "nbshapes res"
+set nb_v_good 60
+set nb_e_good 90
+set nb_w_good 42
+set nb_f_good 40
+set nb_sh_good 5
+set nb_sol_good 5
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 243
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_71 b/tests/bugs/modalg/bug6272_71
new file mode 100644 (file)
index 0000000..8bb8228
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_3 a1_5
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 730.993
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_710 b/tests/bugs/modalg/bug6272_710
new file mode 100644 (file)
index 0000000..12b3ca8
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_6 a1_4
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 3387.54
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_72 b/tests/bugs/modalg/bug6272_72
new file mode 100644 (file)
index 0000000..7b05acb
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_5 a1_3
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 730.993
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_73 b/tests/bugs/modalg/bug6272_73
new file mode 100644 (file)
index 0000000..d9f3404
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_5 a1_1
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 2037.7
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_74 b/tests/bugs/modalg/bug6272_74
new file mode 100644 (file)
index 0000000..f9e0dfc
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_1 a1_5
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 2037.7
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_75 b/tests/bugs/modalg/bug6272_75
new file mode 100644 (file)
index 0000000..8306731
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_1 a1_2
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 2314.14
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_76 b/tests/bugs/modalg/bug6272_76
new file mode 100644 (file)
index 0000000..a0dc833
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_2 a1_1
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 2314.14
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_77 b/tests/bugs/modalg/bug6272_77
new file mode 100644 (file)
index 0000000..05d7c48
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_2 a1_4
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 922.7
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_78 b/tests/bugs/modalg/bug6272_78
new file mode 100644 (file)
index 0000000..7ed242a
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_4 a1_2
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 922.7
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_79 b/tests/bugs/modalg/bug6272_79
new file mode 100644 (file)
index 0000000..987aa25
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_4 a1_6
+if { [catch { bopfuse result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 3387.54
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6272_81 b/tests/bugs/modalg/bug6272_81
new file mode 100644 (file)
index 0000000..959fac2
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_3 a1_5
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 36
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_810 b/tests/bugs/modalg/bug6272_810
new file mode 100644 (file)
index 0000000..bfa564e
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_6 a1_4
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 57.3941
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_82 b/tests/bugs/modalg/bug6272_82
new file mode 100644 (file)
index 0000000..690c798
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_5 a1_3
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 36
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_83 b/tests/bugs/modalg/bug6272_83
new file mode 100644 (file)
index 0000000..08c2deb
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_5 a1_1
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 32
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_84 b/tests/bugs/modalg/bug6272_84
new file mode 100644 (file)
index 0000000..1519b34
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_1 a1_5
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 32
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_85 b/tests/bugs/modalg/bug6272_85
new file mode 100644 (file)
index 0000000..a35fd94
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_1 a1_2
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 32
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_86 b/tests/bugs/modalg/bug6272_86
new file mode 100644 (file)
index 0000000..1c64b33
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_2 a1_1
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 32
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_87 b/tests/bugs/modalg/bug6272_87
new file mode 100644 (file)
index 0000000..809b937
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_2 a1_4
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 32.1528
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_88 b/tests/bugs/modalg/bug6272_88
new file mode 100644 (file)
index 0000000..9418190
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_4 a1_2
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 32.1528
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6272_89 b/tests/bugs/modalg/bug6272_89
new file mode 100644 (file)
index 0000000..8aeefc7
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC6272"
+puts "============"
+puts ""
+######################################################
+# Incorrect results of gluing operation
+######################################################
+
+set BugNumber OCC6272
+
+restore [locate_data_file OCC6272_bridge2.brep] a1 
+
+#
+# a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids
+#
+
+explode a1 so
+
+bop a1_4 a1_6
+if { [catch { bopsection result } ] } {
+    puts "Faulty ${BugNumber}"
+}
+
+set length 57.3941
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6277 b/tests/bugs/modalg/bug6277
new file mode 100644 (file)
index 0000000..fcc3558
--- /dev/null
@@ -0,0 +1,43 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC6277"
+puts "============"
+puts ""
+######################################################
+# Cut operation does not produce any result
+######################################################
+
+set BugNumber OCC6277
+
+restore [locate_data_file OCC6277_A.brep] s1 
+restore [locate_data_file OCC6277_B.brep] s2 
+
+decho off
+set che_s1 [checkshape s1]
+set che_s2 [checkshape s2]
+decho on
+if { [regexp {Faulty} $che_s1] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s1"
+}
+    
+if { [regexp {Faulty} $che_s2] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s2"
+}
+        
+bcut result s1 s2
+
+set square 40084.9
+
+set nb_v_good 23
+set nb_e_good 34
+set nb_w_good 19
+set nb_f_good 14
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 93
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug6289 b/tests/bugs/modalg/bug6289
new file mode 100644 (file)
index 0000000..2697f7f
--- /dev/null
@@ -0,0 +1,29 @@
+#INTERFACE STEP
+puts "============"
+puts "OCC6289"
+puts "============"
+puts ""
+######################################################
+# Internal error (code 101) in Section computation
+######################################################
+
+catch { pload XDE }
+
+set BugNumber OCC6289
+
+if { [catch { stepread [locate_data_file OCC6289.stp] a * } catch_result] } {
+    puts "Faulty ${BugNumber} : here is reading problem"
+} else {
+    tpcompound comp
+
+    plane pl 0 0 28 0 0 1
+    mkface f pl
+
+    if { [catch { bsection result comp f } catch_result] } {
+       puts "Faulty ${BugNumber}"
+    }
+}
+
+set length 453.679
+set 3dviewer 0
+
diff --git a/tests/bugs/modalg/bug6334 b/tests/bugs/modalg/bug6334
new file mode 100644 (file)
index 0000000..b90cd69
--- /dev/null
@@ -0,0 +1,69 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC6334"
+puts "============"
+puts ""
+######################################################
+# Invalid result of MakeCylindricalHole when input solid is REVERSED
+######################################################
+
+set BugNumber OCC6334
+
+# 1. Make box
+box b 100 100 100
+
+subshape b f 1
+offsetshape t b 10 b_1
+
+decho off
+set che_t [checkshape t]
+decho on
+
+if {[regexp {Faulty} $che_t]} {
+    puts "Faulty ${BugNumber} : checkshape is wrong for t"
+}
+
+set bnd_t [bounding t]
+set ori [lindex [dtyp t] 2]
+puts "Orientation of thick solid is $ori"
+
+# 3. Make hole
+hole h t 110 50 50 1 0 0 10
+
+set che [checkshape h]
+if { [regexp {Faulty} $che] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for h"
+}
+
+set bnd_h [bounding h]
+
+renamevar h result
+
+set square 117509
+
+set nb_v_good 32
+set nb_e_good 53
+set nb_w_good 27
+set nb_f_good 24
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 139
+
+
+# 4. Check thickness of box and hole
+set dx_t [expr [lindex $bnd_t 3] - [lindex $bnd_t 0]]
+set dx_h [expr [lindex $bnd_h 3] - [lindex $bnd_h 0]]
+
+if { [expr abs($dx_h - $dx_t)] > 1e-5 } {
+  puts "Thickness of solid = $dx_t"
+  puts "Thickness of solid with hole = $dx_h"
+  puts "Invalid result of making a hole"
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6502 b/tests/bugs/modalg/bug6502
new file mode 100644 (file)
index 0000000..0a7a2f6
--- /dev/null
@@ -0,0 +1,21 @@
+puts "================"
+puts "OCC6502"
+puts "================"
+puts ""
+#######################################################################################
+# Failure calculation of ShrunkRange resulting to failure of boolean operation
+#######################################################################################
+
+set BugNumber OCC6502
+
+
+restore [locate_data_file OCC6502.brep] a 
+plane pl 100 0 0 1 0 0
+mkface f pl
+
+if { [catch { bsection result a f -a } catch_result] } {
+    puts "Faulty ${BugNumber}"
+} 
+
+set length 37.7831
+set 3dviewer 0
diff --git a/tests/bugs/modalg/bug6538 b/tests/bugs/modalg/bug6538
new file mode 100644 (file)
index 0000000..dec5dfa
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC6538"
+puts "============"
+puts ""
+######################################################
+# Empty result obtained by operation "common" for couple of faces
+######################################################
+
+set BugNumber OCC6538
+
+restore [locate_data_file OCC6538-f1.brep] s1 
+restore [locate_data_file OCC6538-f2.brep] s2 
+
+decho off
+set che_s1 [checkshape s1]
+set che_s2 [checkshape s2]
+decho on
+if { [regexp {Faulty} $che_s1] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s1"
+}
+
+if { [regexp {Faulty} $che_s2] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s2"
+}
+
+
+bop s1 s2
+bopcommon result
+
+set square 18.695
+
+set nb_v_good 16
+set nb_e_good 16
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 36
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6554 b/tests/bugs/modalg/bug6554
new file mode 100644 (file)
index 0000000..b5cd3b1
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC6554"
+puts "============"
+puts ""
+######################################################
+# Intersection shell-plane gives a disconnected set of edges
+######################################################
+
+set BugNumber OCC6554
+
+restore [locate_data_file OCC6554-shell.brep] sh 
+restore [locate_data_file OCC6554-face.brep] f 
+
+decho off
+set che_sh [checkshape sh]
+set che_f [checkshape f]
+decho on
+if { [regexp {Faulty} $che_sh] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for sh"
+}
+
+if { [regexp {Faulty} $che_f] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for f"
+}
+
+bsection result sh f -a
+
+regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection result] full Vertices
+
+set good_Vertices 2
+
+if { ${Vertices} != ${good_Vertices} } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set length 110.045
+set 2dviewer 2
diff --git a/tests/bugs/modalg/bug6766_1 b/tests/bugs/modalg/bug6766_1
new file mode 100644 (file)
index 0000000..6f6222a
--- /dev/null
@@ -0,0 +1,38 @@
+puts "================"
+puts "OCC6766"
+puts "================"
+puts ""
+#######################################################################################
+# Invalid result of intersection of a bspline face with a plane
+#######################################################################################
+
+set BugNumber OCC6766
+
+restore [locate_data_file OCC6766.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for s1"
+}
+        
+set Y 4
+plane pl 0 ${Y} 0 0 1 0
+mkface f pl
+bsection result a f -2d -a
+
+
+    
+set nb_v_good 4
+set nb_e_good 3
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 8
+
+set length 138.474
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6766_2 b/tests/bugs/modalg/bug6766_2
new file mode 100644 (file)
index 0000000..d0e28ed
--- /dev/null
@@ -0,0 +1,38 @@
+puts "================"
+puts "OCC6766"
+puts "================"
+puts ""
+#######################################################################################
+# Invalid result of intersection of a bspline face with a plane
+#######################################################################################
+
+set BugNumber OCC6766
+
+restore [locate_data_file OCC6766.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+    
+set Y 4
+plane pl 0 ${Y} 0 0 1 0
+mkface f pl
+bop a f
+bopsection result
+
+
+set nb_v_good 4
+set nb_e_good 3
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 8
+
+set length 138.474
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6766_3 b/tests/bugs/modalg/bug6766_3
new file mode 100644 (file)
index 0000000..610bb60
--- /dev/null
@@ -0,0 +1,37 @@
+puts "================"
+puts "OCC6766"
+puts "================"
+puts ""
+#######################################################################################
+# Invalid result of intersection of a bspline face with a plane
+#######################################################################################
+
+set BugNumber OCC6766
+
+restore [locate_data_file OCC6766.brep] a 
+
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+        
+set Y 6
+plane pl 0 ${Y} 0 0 1 0
+mkface f pl
+bsection result a f -2d -a
+
+
+set nb_v_good 4
+set nb_e_good 3
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 8
+
+set length 126.138
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6766_4 b/tests/bugs/modalg/bug6766_4
new file mode 100644 (file)
index 0000000..21479c8
--- /dev/null
@@ -0,0 +1,37 @@
+puts "================"
+puts "OCC6766"
+puts "================"
+puts ""
+#######################################################################################
+# Invalid result of intersection of a bspline face with a plane
+#######################################################################################
+
+set BugNumber OCC6766
+
+restore [locate_data_file OCC6766.brep] a 
+decho off
+set che_a [checkshape a]
+decho on
+if { [regexp {Faulty} $che_a] } {
+    puts "Faulty ${BugNumber} : checkshape is wrong for a"
+}
+
+set Y 6
+plane pl 0 ${Y} 0 0 1 0
+mkface f pl
+bop a f
+bopsection result
+
+
+set nb_v_good 4
+set nb_e_good 3
+set nb_w_good 0
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 8
+
+set length 126.138
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug6811 b/tests/bugs/modalg/bug6811
new file mode 100644 (file)
index 0000000..bcbe7e3
--- /dev/null
@@ -0,0 +1,32 @@
+#INTERFACE STEP
+puts "================"
+puts "OCC6811"
+puts "================"
+puts ""
+#######################################################################################
+# Unstable work of the checkshape on the attached file. 
+#######################################################################################
+
+catch { pload XDE }
+
+set BugNumber OCC6811
+
+if { [catch { stepread [locate_data_file trj12_b3-tu-203.stp] a * } catch_result] } {
+    puts "Faulty ${BugNumber} : here is reading problem"
+} else {
+    decho off
+    set che_a_1 [checkshape a_1 f]
+    set che_a_2 [checkshape a_1 f]
+    decho on
+    if { [regexp {Faulty} $che_a_1] } {
+        puts "Faulty ${BugNumber} : checkshape 1 is wrong for a"
+    }
+    if { [regexp {Faulty} $che_a_2] } {
+        puts "Faulty ${BugNumber} : checkshape 2 is wrong for a"
+    }
+    
+    renamevar a_1 result
+}
+
+set square 1.48021e+06
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug697_10 b/tests/bugs/modalg/bug697_10
new file mode 100644 (file)
index 0000000..fe00953
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bopfuse)
+######################################################
+
+restore [locate_data_file OCC697_2.brep] b2 
+restore [locate_data_file OCC697_3.brep] b3 
+
+checkshape b2
+checkshape b3
+
+bop b3 b2
+if { [catch {bopfuse result} catch_result] } {
+   puts "Faulty OCC697"
+}
+set square 25357.5
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_11 b/tests/bugs/modalg/bug697_11
new file mode 100644 (file)
index 0000000..ef72bfc
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1 
+restore [locate_data_file OCC697_2.brep] b2 
+
+checkshape b1
+checkshape b2
+if { [catch {bfuse result b2 b1} catch_result] } {
+   puts "Faulty OCC697"
+}
+set square 8879.41
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_12 b/tests/bugs/modalg/bug697_12
new file mode 100644 (file)
index 0000000..489d407
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+restore [locate_data_file OCC697_2.brep] b2 
+restore [locate_data_file OCC697_3.brep] b3 
+
+checkshape b2
+checkshape b3
+if { [catch {bfuse result b3 b2} catch_result] } {
+   puts "Faulty OCC697"
+}
+set square 25357.5
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_3 b/tests/bugs/modalg/bug697_3
new file mode 100644 (file)
index 0000000..5854b25
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bfuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1 
+restore [locate_data_file OCC697_2.brep] b2 
+
+checkshape b1
+checkshape b2
+
+if { [catch {bfuse result b1 b2} catch_result] } {
+    puts "Faulty OCC697"
+} 
+
+set square 8879.41
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug697_4 b/tests/bugs/modalg/bug697_4
new file mode 100644 (file)
index 0000000..062a879
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bfuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1 
+restore [locate_data_file OCC697_2.brep] b2 
+
+checkshape b1
+checkshape b2
+
+if { [catch {bfuse result b2 b1} catch_result] } {
+    puts "Faulty OCC697"
+}
+
+set square 8879.41
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug697_5 b/tests/bugs/modalg/bug697_5
new file mode 100644 (file)
index 0000000..081912d
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bfuse)
+######################################################
+
+restore [locate_data_file OCC697_2.brep] b2 
+restore [locate_data_file OCC697_3.brep] b3 
+
+checkshape b2
+checkshape b3
+
+if { [catch {bfuse result b2 b3} catch_result] } {
+    puts "Faulty OCC697"
+} 
+set square 25357.5
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_6 b/tests/bugs/modalg/bug697_6
new file mode 100644 (file)
index 0000000..69adc12
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bfuse)
+######################################################
+
+restore [locate_data_file OCC697_2.brep] b2 
+restore [locate_data_file OCC697_3.brep] b3 
+
+checkshape b2
+checkshape b3
+
+if { [catch {bfuse result b3 b2} catch_result] } {
+   puts "Faulty OCC697"
+}
+set square 25357.5
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_7 b/tests/bugs/modalg/bug697_7
new file mode 100644 (file)
index 0000000..c9c5e67
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bopfuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1 
+restore [locate_data_file OCC697_2.brep] b2 
+
+checkshape b1
+checkshape b2
+
+bop b1 b2
+if { [catch {bopfuse result} catch_result] } {
+   puts "Faulty OCC697"
+}
+set square 8879.41
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_8 b/tests/bugs/modalg/bug697_8
new file mode 100644 (file)
index 0000000..2188a19
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bopfuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1 
+restore [locate_data_file OCC697_2.brep] b2 
+
+checkshape b1
+checkshape b2
+
+bop b2 b1
+if { [catch {bopfuse result} catch_result] } {
+   puts "Faulty OCC697"
+}
+set square 8879.41
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug697_9 b/tests/bugs/modalg/bug697_9
new file mode 100644 (file)
index 0000000..c897130
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (new topology)
+## (bopfuse)
+######################################################
+
+restore [locate_data_file OCC697_2.brep] b2 
+restore [locate_data_file OCC697_3.brep] b3 
+
+checkshape b2
+checkshape b3
+
+bop b2 b3
+if { [catch {bopfuse result} catch_result] } {
+   puts "Faulty OCC697 "
+}
+set square 25357.5
+set 3dviewer 1
+
diff --git a/tests/bugs/modalg/bug7626_1 b/tests/bugs/modalg/bug7626_1
new file mode 100644 (file)
index 0000000..4eb3809
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC7626"
+puts "============"
+puts ""
+######################################################
+# Bad result of bcut operation
+######################################################
+
+set BugNumber OCC7626
+
+psphere s 10
+box b 10 0 0 20 20 20
+trotate b 10 0 0 0 0 1 45
+
+bcut result s b
+
+set square 1271.7
+
+set nb_v_good 4
+set nb_e_good 7
+set nb_w_good 4
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 21
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug7626_2 b/tests/bugs/modalg/bug7626_2
new file mode 100644 (file)
index 0000000..406de37
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC7626"
+puts "============"
+puts ""
+######################################################
+# Bad result of bcut operation
+######################################################
+
+set BugNumber OCC7626
+
+psphere s 10
+box b 10 0 0 20 20 20
+trotate b 10 0 0 0 0 1 45
+
+bcommon result s b
+
+set square 199.095
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 14
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug7668 b/tests/bugs/modalg/bug7668
new file mode 100644 (file)
index 0000000..e3704ab
--- /dev/null
@@ -0,0 +1,36 @@
+puts "============"
+puts "OCC7668"
+puts "============"
+puts ""
+#######################################################################
+# BRepOffsetAPI_MakeOffset wrong generated list
+#######################################################################
+
+puts "#"
+puts "Non stable test case on Linux. MKV. 29.12.2010"
+puts " ( VERTEX : 136  or  VERTEX : 134 )"
+puts "#"
+
+set BugNumber OCC7668
+
+restore [locate_data_file OCC7668.brep] a1 
+
+wire w1 a1
+
+mkoffset result w1 1 2
+
+renamevar result_1 result
+
+# Analysis of "nbshapes res"
+set nb_v_good 134
+set nb_e_good 134
+set nb_w_good 1
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 269
+
+set length 136.008
+set 2dviewer 0
index 3d04ff3..7abd3b3 100755 (executable)
@@ -1,5 +1,6 @@
 puts "TODO ?OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
 puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+puts "TODO ?OCC12345 ALL: TEST ICOMPLETE"
 
 puts "========"
 puts "OCC770"
diff --git a/tests/bugs/modalg/bug8228 b/tests/bugs/modalg/bug8228
new file mode 100644 (file)
index 0000000..570e5e2
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC8228"
+puts "============"
+puts ""
+######################################################
+# exeption is raised during the vprops in DRAW on the attached shape
+######################################################
+
+set BugNumber OCC8228
+
+catch {pload XDE}
+catch {pload DCAF}
+
+# Create a new document and set UndoLimit
+
+NewDocument D MDTV-XCAF
+UndoLimit D 100
+
+# Open a transaction
+NewCommand D
+
+ReadStep D [locate_data_file OCC8228.stp]
+XGetOneShape result D 
+
+set square 1.46159e+06
+
+set nb_v_good 1296
+set nb_e_good 2041
+set nb_w_good 826
+set nb_f_good 761
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 4926
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug8372 b/tests/bugs/modalg/bug8372
new file mode 100644 (file)
index 0000000..5a7cfaa
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC8372"
+puts "============"
+puts ""
+######################################################
+# Twisted result of ThruSections operation
+######################################################
+
+set BugNumber OCC8372
+
+restore [locate_data_file OCC8372_1.brep] w1 
+restore [locate_data_file OCC8372_2.brep] w2 
+
+thrusections result 1 1 w1 w2
+
+set square 4140.46
+
+set nb_v_good 12
+set nb_e_good 18
+set nb_w_good 8
+set nb_f_good 8
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 48
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug951_31 b/tests/bugs/modalg/bug951_31
new file mode 100644 (file)
index 0000000..0cbdd41
--- /dev/null
@@ -0,0 +1,43 @@
+puts "========="
+puts " OCC951 "
+puts "========="
+puts ""
+##################################################
+##BRepAlgoAPI_Section and BRepAlgoAPI_Common fail on given shapes
+##################################################
+## (old topology)
+## (common)
+## (section)
+######################################################
+
+restore [locate_data_file OCC951_1.brep] b 
+restore [locate_data_file OCC951_2.brep] a 
+
+checkshape b
+checkshape a
+
+bcommon result a b
+
+set nb_info [nbshapes result]
+
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full ed
+regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+regexp {FACE +: +([-0-9.+eE]+)} $nb_info full fa
+regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full sh
+regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full so
+rege