0025207: GCPnts_QuasiUniformDeflection achieves incorrect result on some curve.
authorjgv <jgv@opencascade.com>
Thu, 25 Sep 2014 10:43:28 +0000 (14:43 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 25 Sep 2014 11:58:34 +0000 (15:58 +0400)
Test case for issue CR25207

src/GCPnts/GCPnts_QuasiUniformDeflection.gxx
tests/bugs/moddata_3/bug25207 [new file with mode: 0755]

index fff0458..33ebf78 100644 (file)
@@ -144,7 +144,7 @@ static Standard_Boolean PerformCurve (TColStd_SequenceOfReal& Parameters,
                                       const Standard_Real EPSILON,
                                       const GeomAbs_Shape Continuity)
 {
-  Standard_Integer Nbmin = 21;
+  Standard_Integer Nbmin = 2;
 
   gp_Pnt Pdeb;
   if (Continuity <= GeomAbs_G1)
diff --git a/tests/bugs/moddata_3/bug25207 b/tests/bugs/moddata_3/bug25207
new file mode 100755 (executable)
index 0000000..f5e1905
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "CR25207"
+puts "==========="
+puts ""
+###############################################################################
+# GCPnts_QuasiUniformDeflection achieves incorrect result on some curve.
+###############################################################################
+
+restore [locate_data_file bug25207_DumpShape2.brep] cc
+mkcurve cc cc
+
+set info [crvpoints r cc 1.e-3]
+
+set str1 "Nb points +: +(\[-0-9.+eE\]+)\n"
+set str2 "Max defl: +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+)"
+
+regexp "${str1}${str2}" ${info} full Nb dmax ufmax ulmax i
+
+set expected_Nb 76
+if { ${Nb} != ${expected_Nb} } {
+    puts "Error : bad value of Nb points=${Nb}"
+}
+
+set tol_abs 1.0e-05
+set tol_rel 0.01
+
+set expected_dmax 5.8270132894239685e-10
+set expected_ufmax 0.984375
+
+checkreal "dmax" ${dmax} ${expected_dmax} ${tol_abs} ${tol_rel}
+checkreal "ufmax" ${ufmax} ${expected_ufmax} ${tol_abs} ${tol_rel}
+
+set expected_ulmax 1
+if { ${ulmax} != ${expected_ulmax} } {
+    puts "Error : bad value of ulmax=${ulmax}"
+}
+set expected_i 77
+if { ${i} != ${expected_i} } {
+    puts "Error : bad value of i=${i}"
+}