0029807: [Regression to 7.0.0] Impossible to cut cone from prism
[occt.git] / tests / bugs / modalg_7 / bug23972
diff --git a/tests/bugs/modalg_7/bug23972 b/tests/bugs/modalg_7/bug23972
new file mode 100644 (file)
index 0000000..b9d919b
--- /dev/null
@@ -0,0 +1,52 @@
+puts "=========="
+puts "OCC23972: Excep-tion thrown when intersecting two cones"
+puts "=========="
+puts ""
+
+pload QAcommands
+
+set GoodNbCurv 2
+
+OCC23972 s1 s2
+
+intersect res s1 s2
+
+set che [whatis res]
+set ind [string first "3d curve" $che]
+if {${ind} >= 0} {
+  #Only variable "res" exists
+  renamevar res res_1
+}
+
+set ic 1
+set AllowRepeat 1
+while { $AllowRepeat != 0 } {
+  set che [whatis res_$ic]
+  set ind [string first "3d curve" $che]
+  if {${ind} < 0} {
+    set AllowRepeat 0
+  } else {
+   
+    bounds res_$ic U1 U2
+    
+    # Hyperbola is expected as intersection result.
+    # So, all bounds are adjusted to allow correct computation.
+    if { [dval U1] < -20.0 } { dset U1 -20.0 }
+    if { [dval U2] > 20.0 }  { dset U2 20.0 }
+    
+    if {[dval U2-U1] < 1.0e-20} {
+      puts "Error: Wrong curve's range!"
+    }
+    
+    xdistcs res_$ic s1 U1 U2 10 3.0e-7
+    xdistcs res_$ic s2 U1 U2 10 3.0e-7
+    
+    incr ic
+  }
+}
+
+if {[expr {$ic - 1}] == $GoodNbCurv} {
+  puts "OK: Number of curves is good!"
+} else {
+  puts "Error: Number of curves is bad!"
+}
\ No newline at end of file