puts "============" puts "OCC27896" puts "============" puts "" ############################### ## Prm-Prm intersection algo returns wrong result if it is called with start ## intersection point, which lies in the domain boundary ############################### set tol_abs_Tolerance_Reached 1.0e-7 set tol_rel_Tolerance_Reached 0.1 set GoodNbCurves 2 restore [locate_data_file bug25319_S1.brep] b1 restore [locate_data_file bug25319_S2.brep] b2 explode b1 f explode b2 f # GOOD result before the fix set log1 [bopcurves b1_8 b2_17 -2d -p +1.09444207768950010000 +29.00000000000000000000 +0.17740001678466785000 +2.79671571032639710000 -p +0.00000000000000000000 +26.87779254288926400000 +0.17767342824312710000 +2.80622040022304510000] # BAD result before the fix set log2 [bopcurves b1_8 b2_17 -2d -p +1.09444207768949960000 +29.00000000000000000000 +0.17740001678466785000 +2.79671571032639750000 -p +0.00000000000000000000 +26.87779254288926400000 +0.17767342824312710000 +2.80622040022304510000] regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Tolerance_Reached1 NbCurv1 regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Tolerance_Reached2 NbCurv2 set expected_Tolerance_Reached1 2.2611960020325053e-007 set expected_Tolerance_Reached2 5.0364838664362801e-006 checkreal "Tolerance Reached" ${Tolerance_Reached1} ${expected_Tolerance_Reached1} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} checkreal "Tolerance Reached" ${Tolerance_Reached2} ${expected_Tolerance_Reached2} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} if { $NbCurv1 != $GoodNbCurves } { puts "Error in case 1: $GoodNbCurves curve(s) is expected but $NbCurv1 is found" } if { $NbCurv2 != $GoodNbCurves } { puts "Error in case 2: $GoodNbCurves curve(s) is expected but $NbCurv2 is found" }