Adding test cases from chl grid
authorapn <apn@opencascade.com>
Fri, 1 Feb 2013 13:32:08 +0000 (17:32 +0400)
committerapn <apn@opencascade.com>
Fri, 1 Feb 2013 13:32:08 +0000 (17:32 +0400)
513 files changed:
tests/bugs/caf/bug1138 [new file with mode: 0755]
tests/bugs/caf/bug21231 [new file with mode: 0755]
tests/bugs/caf/bug22976 [new file with mode: 0755]
tests/bugs/caf/bug22995 [new file with mode: 0755]
tests/bugs/caf/bug23071 [new file with mode: 0755]
tests/bugs/caf/bug23306 [new file with mode: 0755]
tests/bugs/caf/bug9746 [new file with mode: 0755]
tests/bugs/fclasses/bug15489 [new file with mode: 0755]
tests/bugs/heal/bug22587 [new file with mode: 0755]
tests/bugs/heal/bug22924 [new file with mode: 0755]
tests/bugs/iges/bug13627 [new file with mode: 0755]
tests/bugs/iges/bug15755 [new file with mode: 0755]
tests/bugs/iges/bug16569 [new file with mode: 0755]
tests/bugs/iges/bug16662 [new file with mode: 0755]
tests/bugs/iges/bug17026_1 [new file with mode: 0755]
tests/bugs/iges/bug17026_2 [new file with mode: 0755]
tests/bugs/iges/bug17026_3 [new file with mode: 0755]
tests/bugs/iges/bug17026_4 [new file with mode: 0755]
tests/bugs/modalg/begin
tests/bugs/modalg/bug11565_1 [new file with mode: 0755]
tests/bugs/modalg/bug11565_2 [new file with mode: 0755]
tests/bugs/modalg/bug12507 [new file with mode: 0755]
tests/bugs/modalg/bug12627 [new file with mode: 0755]
tests/bugs/modalg/bug12661 [new file with mode: 0755]
tests/bugs/modalg/bug12918 [new file with mode: 0755]
tests/bugs/modalg/bug13116_1 [new file with mode: 0755]
tests/bugs/modalg/bug13116_2 [new file with mode: 0755]
tests/bugs/modalg/bug13116_3 [new file with mode: 0755]
tests/bugs/modalg/bug13116_4 [new file with mode: 0755]
tests/bugs/modalg/bug13140 [new file with mode: 0755]
tests/bugs/modalg/bug13142 [new file with mode: 0755]
tests/bugs/modalg/bug13186_1 [new file with mode: 0755]
tests/bugs/modalg/bug13186_2 [new file with mode: 0755]
tests/bugs/modalg/bug13186_3 [new file with mode: 0755]
tests/bugs/modalg/bug13186_4 [new file with mode: 0755]
tests/bugs/modalg/bug13209_1 [new file with mode: 0755]
tests/bugs/modalg/bug13209_2 [new file with mode: 0755]
tests/bugs/modalg/bug13209_3 [new file with mode: 0755]
tests/bugs/modalg/bug13209_4 [new file with mode: 0755]
tests/bugs/modalg/bug13211_1 [new file with mode: 0755]
tests/bugs/modalg/bug13211_10 [new file with mode: 0755]
tests/bugs/modalg/bug13211_11 [new file with mode: 0755]
tests/bugs/modalg/bug13211_2 [new file with mode: 0755]
tests/bugs/modalg/bug13211_3 [new file with mode: 0755]
tests/bugs/modalg/bug13211_4 [new file with mode: 0755]
tests/bugs/modalg/bug13211_5 [new file with mode: 0755]
tests/bugs/modalg/bug13211_6 [new file with mode: 0755]
tests/bugs/modalg/bug13211_7 [new file with mode: 0755]
tests/bugs/modalg/bug13211_8 [new file with mode: 0755]
tests/bugs/modalg/bug13211_9 [new file with mode: 0755]
tests/bugs/modalg/bug13395 [new file with mode: 0755]
tests/bugs/modalg/bug13538 [new file with mode: 0755]
tests/bugs/modalg/bug14506 [new file with mode: 0755]
tests/bugs/modalg/bug14536 [new file with mode: 0755]
tests/bugs/modalg/bug14643 [new file with mode: 0755]
tests/bugs/modalg/bug14777 [new file with mode: 0755]
tests/bugs/modalg/bug14780 [new file with mode: 0755]
tests/bugs/modalg/bug15036 [new file with mode: 0755]
tests/bugs/modalg/bug15836 [new file with mode: 0755]
tests/bugs/modalg/bug15850 [new file with mode: 0755]
tests/bugs/modalg/bug15850_1 [new file with mode: 0755]
tests/bugs/modalg/bug15850_2 [new file with mode: 0755]
tests/bugs/modalg/bug15850_3 [new file with mode: 0755]
tests/bugs/modalg/bug15850_4 [new file with mode: 0755]
tests/bugs/modalg/bug15943 [new file with mode: 0755]
tests/bugs/modalg/bug15968_1 [new file with mode: 0755]
tests/bugs/modalg/bug15968_2 [new file with mode: 0755]
tests/bugs/modalg/bug16517_1 [new file with mode: 0755]
tests/bugs/modalg/bug16517_2 [new file with mode: 0755]
tests/bugs/modalg/bug16667_1 [new file with mode: 0755]
tests/bugs/modalg/bug16667_2 [new file with mode: 0755]
tests/bugs/modalg/bug16667_3 [new file with mode: 0755]
tests/bugs/modalg/bug16667_4 [new file with mode: 0755]
tests/bugs/modalg/bug16781 [new file with mode: 0755]
tests/bugs/modalg/bug17194_1 [new file with mode: 0755]
tests/bugs/modalg/bug17194_2 [new file with mode: 0755]
tests/bugs/modalg/bug17357_1 [new file with mode: 0755]
tests/bugs/modalg/bug17357_2 [new file with mode: 0755]
tests/bugs/modalg/bug17357_3 [new file with mode: 0755]
tests/bugs/modalg/bug17357_4 [new file with mode: 0755]
tests/bugs/modalg/bug17357_5 [new file with mode: 0755]
tests/bugs/modalg/bug18186 [new file with mode: 0755]
tests/bugs/modalg/bug19071 [new file with mode: 0755]
tests/bugs/modalg/bug19793_2 [new file with mode: 0755]
tests/bugs/modalg/bug19811 [new file with mode: 0755]
tests/bugs/modalg/bug20222 [new file with mode: 0755]
tests/bugs/modalg/bug20285_1 [new file with mode: 0755]
tests/bugs/modalg/bug20285_10 [new file with mode: 0755]
tests/bugs/modalg/bug20285_11 [new file with mode: 0755]
tests/bugs/modalg/bug20285_12 [new file with mode: 0755]
tests/bugs/modalg/bug20285_13 [new file with mode: 0755]
tests/bugs/modalg/bug20285_14 [new file with mode: 0755]
tests/bugs/modalg/bug20285_15 [new file with mode: 0755]
tests/bugs/modalg/bug20285_2 [new file with mode: 0755]
tests/bugs/modalg/bug20285_3 [new file with mode: 0755]
tests/bugs/modalg/bug20285_4 [new file with mode: 0755]
tests/bugs/modalg/bug20285_5 [new file with mode: 0755]
tests/bugs/modalg/bug20285_6 [new file with mode: 0755]
tests/bugs/modalg/bug20285_7 [new file with mode: 0755]
tests/bugs/modalg/bug20285_8 [new file with mode: 0755]
tests/bugs/modalg/bug20285_9 [new file with mode: 0755]
tests/bugs/modalg/bug20297_1 [new file with mode: 0755]
tests/bugs/modalg/bug20297_2 [new file with mode: 0755]
tests/bugs/modalg/bug20297_3 [new file with mode: 0755]
tests/bugs/modalg/bug20297_4 [new file with mode: 0755]
tests/bugs/modalg/bug20297_5 [new file with mode: 0755]
tests/bugs/modalg/bug20413 [new file with mode: 0755]
tests/bugs/modalg/bug20465 [new file with mode: 0755]
tests/bugs/modalg/bug20785 [new file with mode: 0755]
tests/bugs/modalg/bug20793 [new file with mode: 0755]
tests/bugs/modalg/bug20807_1 [new file with mode: 0755]
tests/bugs/modalg/bug20807_2 [new file with mode: 0755]
tests/bugs/modalg/bug20807_3 [new file with mode: 0755]
tests/bugs/modalg/bug20807_4 [new file with mode: 0755]
tests/bugs/modalg/bug20964_1 [new file with mode: 0755]
tests/bugs/modalg/bug20964_2 [new file with mode: 0755]
tests/bugs/modalg/bug20964_3 [new file with mode: 0755]
tests/bugs/modalg/bug20964_4 [new file with mode: 0755]
tests/bugs/modalg/bug20964_5 [new file with mode: 0755]
tests/bugs/modalg/bug21255 [new file with mode: 0755]
tests/bugs/modalg/bug21261_1 [new file with mode: 0755]
tests/bugs/modalg/bug21261_10 [new file with mode: 0755]
tests/bugs/modalg/bug21261_11 [new file with mode: 0755]
tests/bugs/modalg/bug21261_12 [new file with mode: 0755]
tests/bugs/modalg/bug21261_13 [new file with mode: 0755]
tests/bugs/modalg/bug21261_14 [new file with mode: 0755]
tests/bugs/modalg/bug21261_15 [new file with mode: 0755]
tests/bugs/modalg/bug21261_16 [new file with mode: 0755]
tests/bugs/modalg/bug21261_17 [new file with mode: 0755]
tests/bugs/modalg/bug21261_18 [new file with mode: 0755]
tests/bugs/modalg/bug21261_19 [new file with mode: 0755]
tests/bugs/modalg/bug21261_2 [new file with mode: 0755]
tests/bugs/modalg/bug21261_20 [new file with mode: 0755]
tests/bugs/modalg/bug21261_21 [new file with mode: 0755]
tests/bugs/modalg/bug21261_22 [new file with mode: 0755]
tests/bugs/modalg/bug21261_23 [new file with mode: 0755]
tests/bugs/modalg/bug21261_24 [new file with mode: 0755]
tests/bugs/modalg/bug21261_25 [new file with mode: 0755]
tests/bugs/modalg/bug21261_26 [new file with mode: 0755]
tests/bugs/modalg/bug21261_27 [new file with mode: 0755]
tests/bugs/modalg/bug21261_28 [new file with mode: 0755]
tests/bugs/modalg/bug21261_29 [new file with mode: 0755]
tests/bugs/modalg/bug21261_3 [new file with mode: 0755]
tests/bugs/modalg/bug21261_30 [new file with mode: 0755]
tests/bugs/modalg/bug21261_31 [new file with mode: 0755]
tests/bugs/modalg/bug21261_32 [new file with mode: 0755]
tests/bugs/modalg/bug21261_33 [new file with mode: 0755]
tests/bugs/modalg/bug21261_34 [new file with mode: 0755]
tests/bugs/modalg/bug21261_35 [new file with mode: 0755]
tests/bugs/modalg/bug21261_36 [new file with mode: 0755]
tests/bugs/modalg/bug21261_37 [new file with mode: 0755]
tests/bugs/modalg/bug21261_38 [new file with mode: 0755]
tests/bugs/modalg/bug21261_39 [new file with mode: 0755]
tests/bugs/modalg/bug21261_4 [new file with mode: 0755]
tests/bugs/modalg/bug21261_40 [new file with mode: 0755]
tests/bugs/modalg/bug21261_41 [new file with mode: 0755]
tests/bugs/modalg/bug21261_42 [new file with mode: 0755]
tests/bugs/modalg/bug21261_43 [new file with mode: 0755]
tests/bugs/modalg/bug21261_44 [new file with mode: 0755]
tests/bugs/modalg/bug21261_45 [new file with mode: 0755]
tests/bugs/modalg/bug21261_46 [new file with mode: 0755]
tests/bugs/modalg/bug21261_5 [new file with mode: 0755]
tests/bugs/modalg/bug21261_6 [new file with mode: 0755]
tests/bugs/modalg/bug21261_7 [new file with mode: 0755]
tests/bugs/modalg/bug21261_8 [new file with mode: 0755]
tests/bugs/modalg/bug21261_9 [new file with mode: 0755]
tests/bugs/modalg/bug21448 [new file with mode: 0755]
tests/bugs/modalg/bug21460 [new file with mode: 0755]
tests/bugs/modalg/bug21540 [new file with mode: 0755]
tests/bugs/modalg/bug21652_1 [new file with mode: 0755]
tests/bugs/modalg/bug21652_2 [new file with mode: 0755]
tests/bugs/modalg/bug21722 [new file with mode: 0755]
tests/bugs/modalg/bug22109_1 [new file with mode: 0755]
tests/bugs/modalg/bug22109_2 [new file with mode: 0755]
tests/bugs/modalg/bug22109_3 [new file with mode: 0755]
tests/bugs/modalg/bug22109_4 [new file with mode: 0755]
tests/bugs/modalg/bug22109_5 [new file with mode: 0755]
tests/bugs/modalg/bug22310 [new file with mode: 0755]
tests/bugs/modalg/bug22356 [new file with mode: 0755]
tests/bugs/modalg/bug22409_1 [new file with mode: 0755]
tests/bugs/modalg/bug22409_2 [new file with mode: 0755]
tests/bugs/modalg/bug22436 [new file with mode: 0755]
tests/bugs/modalg/bug22557 [new file with mode: 0755]
tests/bugs/modalg/bug22588 [new file with mode: 0755]
tests/bugs/modalg/bug22678 [new file with mode: 0755]
tests/bugs/modalg/bug22804 [new file with mode: 0755]
tests/bugs/modalg/bug22864 [new file with mode: 0755]
tests/bugs/modalg/bug22893 [new file with mode: 0755]
tests/bugs/modalg/bug22967 [new file with mode: 0755]
tests/bugs/modalg/bug22968 [new file with mode: 0755]
tests/bugs/modalg/bug23029_1 [new file with mode: 0755]
tests/bugs/modalg/bug23174 [new file with mode: 0755]
tests/bugs/modalg/bug23214 [new file with mode: 0755]
tests/bugs/modalg/bug23341 [new file with mode: 0755]
tests/bugs/modalg/bug5805_10 [new file with mode: 0755]
tests/bugs/modalg/bug5805_11 [new file with mode: 0755]
tests/bugs/modalg/bug5805_12 [new file with mode: 0755]
tests/bugs/modalg/bug5805_13 [new file with mode: 0755]
tests/bugs/modalg/bug5805_14 [new file with mode: 0755]
tests/bugs/modalg/bug5805_15 [new file with mode: 0755]
tests/bugs/modalg/bug5805_16 [new file with mode: 0755]
tests/bugs/modalg/bug5805_17 [new file with mode: 0755]
tests/bugs/modalg/bug5805_18 [new file with mode: 0755]
tests/bugs/modalg/bug5805_19 [new file with mode: 0755]
tests/bugs/modalg/bug5805_20 [new file with mode: 0755]
tests/bugs/modalg/bug5805_21 [new file with mode: 0755]
tests/bugs/modalg/bug5805_22 [new file with mode: 0755]
tests/bugs/modalg/bug5805_23 [new file with mode: 0755]
tests/bugs/modalg/bug5805_24 [new file with mode: 0755]
tests/bugs/modalg/bug5805_25 [new file with mode: 0755]
tests/bugs/modalg/bug5805_26 [new file with mode: 0755]
tests/bugs/modalg/bug5805_27 [new file with mode: 0755]
tests/bugs/modalg/bug5805_28 [new file with mode: 0755]
tests/bugs/modalg/bug5805_29 [new file with mode: 0755]
tests/bugs/modalg/bug5805_30 [new file with mode: 0755]
tests/bugs/modalg/bug5805_31 [new file with mode: 0755]
tests/bugs/modalg/bug5805_32 [new file with mode: 0755]
tests/bugs/modalg/bug5805_33 [new file with mode: 0755]
tests/bugs/modalg/bug5805_34 [new file with mode: 0755]
tests/bugs/modalg/bug5805_35 [new file with mode: 0755]
tests/bugs/modalg/bug5805_36 [new file with mode: 0755]
tests/bugs/modalg/bug5805_37 [new file with mode: 0755]
tests/bugs/modalg/bug5805_38 [new file with mode: 0755]
tests/bugs/modalg/bug5805_39 [new file with mode: 0755]
tests/bugs/modalg/bug5805_40 [new file with mode: 0755]
tests/bugs/modalg/bug5805_41 [new file with mode: 0755]
tests/bugs/modalg/bug5805_42 [new file with mode: 0755]
tests/bugs/modalg/bug5805_43 [new file with mode: 0755]
tests/bugs/modalg/bug5805_44 [new file with mode: 0755]
tests/bugs/modalg/bug5805_45 [new file with mode: 0755]
tests/bugs/modalg/bug5805_46 [new file with mode: 0755]
tests/bugs/modalg/bug5805_47 [new file with mode: 0755]
tests/bugs/modalg/bug5805_48 [new file with mode: 0755]
tests/bugs/modalg/bug5805_49 [new file with mode: 0755]
tests/bugs/modalg/bug5805_50 [new file with mode: 0755]
tests/bugs/modalg/bug5805_51 [new file with mode: 0755]
tests/bugs/modalg/bug5805_52 [new file with mode: 0755]
tests/bugs/modalg/bug5805_53 [new file with mode: 0755]
tests/bugs/modalg/bug5805_54 [new file with mode: 0755]
tests/bugs/modalg/bug5805_55 [new file with mode: 0755]
tests/bugs/modalg/bug5805_56 [new file with mode: 0755]
tests/bugs/modalg/bug5805_57 [new file with mode: 0755]
tests/bugs/modalg/bug5805_58 [new file with mode: 0755]
tests/bugs/modalg/bug5805_7 [new file with mode: 0755]
tests/bugs/modalg/bug5805_8 [new file with mode: 0755]
tests/bugs/modalg/bug5805_9 [new file with mode: 0755]
tests/bugs/moddata/bug11081_1 [new file with mode: 0755]
tests/bugs/moddata/bug11081_2 [new file with mode: 0755]
tests/bugs/moddata/bug12522 [new file with mode: 0755]
tests/bugs/moddata/bug12635_1 [new file with mode: 0755]
tests/bugs/moddata/bug12635_2 [new file with mode: 0755]
tests/bugs/moddata/bug12884 [new file with mode: 0755]
tests/bugs/moddata/bug12888 [new file with mode: 0755]
tests/bugs/moddata/bug13904 [new file with mode: 0755]
tests/bugs/moddata/bug14376 [new file with mode: 0755]
tests/bugs/moddata/bug14782 [new file with mode: 0755]
tests/bugs/moddata/bug15519 [new file with mode: 0755]
tests/bugs/moddata/bug15570 [new file with mode: 0755]
tests/bugs/moddata/bug16119 [new file with mode: 0755]
tests/bugs/moddata/bug16833 [new file with mode: 0755]
tests/bugs/moddata/bug17046 [new file with mode: 0755]
tests/bugs/moddata/bug17424 [new file with mode: 0755]
tests/bugs/moddata/bug18541_1 [new file with mode: 0755]
tests/bugs/moddata/bug18541_2 [new file with mode: 0755]
tests/bugs/moddata/bug19777 [new file with mode: 0755]
tests/bugs/moddata/bug20391 [new file with mode: 0755]
tests/bugs/moddata/bug20404 [new file with mode: 0755]
tests/bugs/moddata/bug20524 [new file with mode: 0755]
tests/bugs/moddata/bug20616 [new file with mode: 0755]
tests/bugs/moddata/bug20627 [new file with mode: 0755]
tests/bugs/moddata/bug20683 [new file with mode: 0755]
tests/bugs/moddata/bug20766 [new file with mode: 0755]
tests/bugs/moddata/bug20823 [new file with mode: 0755]
tests/bugs/moddata/bug20904_1 [new file with mode: 0755]
tests/bugs/moddata/bug20904_2 [new file with mode: 0755]
tests/bugs/moddata/bug20904_3 [new file with mode: 0755]
tests/bugs/moddata/bug21121 [new file with mode: 0755]
tests/bugs/moddata/bug21122 [new file with mode: 0755]
tests/bugs/moddata/bug21292 [new file with mode: 0755]
tests/bugs/moddata/bug21858 [new file with mode: 0755]
tests/bugs/moddata/bug22043 [new file with mode: 0755]
tests/bugs/moddata/bug22080 [new file with mode: 0755]
tests/bugs/moddata/bug22194 [new file with mode: 0755]
tests/bugs/moddata/bug22241 [new file with mode: 0755]
tests/bugs/moddata/bug22296 [new file with mode: 0755]
tests/bugs/moddata/bug22303 [new file with mode: 0755]
tests/bugs/moddata/bug22489_1 [new file with mode: 0755]
tests/bugs/moddata/bug22489_2 [new file with mode: 0755]
tests/bugs/moddata/bug22494 [new file with mode: 0755]
tests/bugs/moddata/bug22529 [new file with mode: 0755]
tests/bugs/moddata/bug22694 [new file with mode: 0755]
tests/bugs/moddata/bug22759 [new file with mode: 0755]
tests/bugs/moddata/bug22802 [new file with mode: 0755]
tests/bugs/moddata/bug22809_1 [new file with mode: 0755]
tests/bugs/moddata/bug22809_2 [new file with mode: 0755]
tests/bugs/moddata/bug22809_3 [new file with mode: 0755]
tests/bugs/moddata/bug22809_4 [new file with mode: 0755]
tests/bugs/moddata/bug22851 [new file with mode: 0755]
tests/bugs/moddata/bug22907 [new file with mode: 0755]
tests/bugs/moddata/bug23092 [new file with mode: 0755]
tests/bugs/moddata/bug23139 [new file with mode: 0755]
tests/bugs/moddata/bug23152 [new file with mode: 0755]
tests/bugs/moddata/bug23165 [new file with mode: 0755]
tests/bugs/moddata/bug23201 [new file with mode: 0755]
tests/bugs/moddata/bug23224 [new file with mode: 0755]
tests/bugs/moddata/bug23244 [new file with mode: 0755]
tests/bugs/moddata/bug23248 [new file with mode: 0755]
tests/bugs/moddata/bug9303 [new file with mode: 0755]
tests/bugs/moddata/bug9303_1 [new file with mode: 0755]
tests/bugs/step/bug11856 [new file with mode: 0755]
tests/bugs/step/bug11857 [new file with mode: 0755]
tests/bugs/step/bug16351 [new file with mode: 0755]
tests/bugs/step/bug22145 [new file with mode: 0755]
tests/bugs/step/bug22237 [new file with mode: 0755]
tests/bugs/step/bug23157 [new file with mode: 0755]
tests/bugs/step/bug23251 [new file with mode: 0755]
tests/bugs/vis/bug12121 [new file with mode: 0755]
tests/bugs/vis/bug12584 [new file with mode: 0755]
tests/bugs/vis/bug129_1 [new file with mode: 0755]
tests/bugs/vis/bug129_2 [new file with mode: 0755]
tests/bugs/vis/bug16950_1 [new file with mode: 0755]
tests/bugs/vis/bug16950_2 [new file with mode: 0755]
tests/bugs/vis/bug16950_3 [new file with mode: 0755]
tests/bugs/vis/bug16950_4 [new file with mode: 0755]
tests/bugs/vis/bug19820 [new file with mode: 0755]
tests/bugs/vis/bug20373 [new file with mode: 0755]
tests/bugs/vis/bug20802 [new file with mode: 0755]
tests/bugs/vis/bug21171_1 [new file with mode: 0755]
tests/bugs/vis/bug21171_2 [new file with mode: 0755]
tests/bugs/vis/bug21171_3 [new file with mode: 0755]
tests/bugs/vis/bug21171_4 [new file with mode: 0755]
tests/bugs/vis/bug21747_1 [new file with mode: 0755]
tests/bugs/vis/bug21747_10 [new file with mode: 0755]
tests/bugs/vis/bug21747_11 [new file with mode: 0755]
tests/bugs/vis/bug21747_12 [new file with mode: 0755]
tests/bugs/vis/bug21747_13 [new file with mode: 0755]
tests/bugs/vis/bug21747_14 [new file with mode: 0755]
tests/bugs/vis/bug21747_15 [new file with mode: 0755]
tests/bugs/vis/bug21747_16 [new file with mode: 0755]
tests/bugs/vis/bug21747_17 [new file with mode: 0755]
tests/bugs/vis/bug21747_2 [new file with mode: 0755]
tests/bugs/vis/bug21747_3 [new file with mode: 0755]
tests/bugs/vis/bug21747_4 [new file with mode: 0755]
tests/bugs/vis/bug21747_5 [new file with mode: 0755]
tests/bugs/vis/bug21747_6 [new file with mode: 0755]
tests/bugs/vis/bug21747_7 [new file with mode: 0755]
tests/bugs/vis/bug21747_8 [new file with mode: 0755]
tests/bugs/vis/bug21747_9 [new file with mode: 0755]
tests/bugs/vis/bug21970 [new file with mode: 0755]
tests/bugs/vis/bug22018 [new file with mode: 0755]
tests/bugs/vis/bug22149 [new file with mode: 0755]
tests/bugs/vis/bug22188 [new file with mode: 0755]
tests/bugs/vis/bug22795 [new file with mode: 0755]
tests/bugs/vis/bug22847 [new file with mode: 0755]
tests/bugs/vis/bug22849 [new file with mode: 0755]
tests/bugs/vis/bug22879 [new file with mode: 0755]
tests/bugs/vis/bug22900 [new file with mode: 0755]
tests/bugs/vis/bug22906 [new file with mode: 0755]
tests/bugs/vis/bug23012 [new file with mode: 0755]
tests/bugs/vis/bug23067 [new file with mode: 0755]
tests/bugs/vis/bug23069 [new file with mode: 0755]
tests/bugs/vis/bug23102 [new file with mode: 0755]
tests/bugs/vis/bug23120_1 [new file with mode: 0755]
tests/bugs/vis/bug23123 [new file with mode: 0755]
tests/bugs/vis/bug23153 [new file with mode: 0755]
tests/bugs/vis/bug23219 [new file with mode: 0755]
tests/bugs/vis/bug23225 [new file with mode: 0755]
tests/bugs/vis/bug23226 [new file with mode: 0755]
tests/bugs/vis/bug23227 [new file with mode: 0755]
tests/bugs/vis/bug23253 [new file with mode: 0755]
tests/bugs/vis/bug23363 [new file with mode: 0755]
tests/bugs/vis/bug23385 [new file with mode: 0755]
tests/bugs/vis/bug5988 [new file with mode: 0755]
tests/bugs/vis/bug5990 [new file with mode: 0755]
tests/bugs/xde/bug12905 [new file with mode: 0755]
tests/bugs/xde/bug15220 [new file with mode: 0755]
tests/bugs/xde/bug1540 [new file with mode: 0755]
tests/bugs/xde/bug1669 [new file with mode: 0755]
tests/bugs/xde/bug1747 [new file with mode: 0755]
tests/bugs/xde/bug21046 [new file with mode: 0755]
tests/bugs/xde/bug21124 [new file with mode: 0755]
tests/bugs/xde/bug22492 [new file with mode: 0755]
tests/bugs/xde/bug22576 [new file with mode: 0755]
tests/bugs/xde/bug22776 [new file with mode: 0755]
tests/bugs/xde/bug22805 [new file with mode: 0755]
tests/bugs/xde/bug22822 [new file with mode: 0755]
tests/bugs/xde/bug22915 [new file with mode: 0755]
tests/bugs/xde/bug22962 [new file with mode: 0755]
tests/bugs/xde/bug22982 [new file with mode: 0755]
tests/bugs/xde/bug23009 [new file with mode: 0755]
tests/bugs/xde/bug23047_1 [new file with mode: 0755]
tests/bugs/xde/bug23047_2 [new file with mode: 0755]
tests/bugs/xde/bug6307 [new file with mode: 0755]
tests/thrusection/end
tests/thrusection/grids.list
tests/thrusection/specific/A1 [new file with mode: 0755]
tests/thrusection/specific/A2 [new file with mode: 0755]
tests/thrusection/specific/A3 [new file with mode: 0755]
tests/thrusection/specific/A4 [new file with mode: 0755]
tests/thrusection/specific/A5 [new file with mode: 0755]
tests/thrusection/specific/A6 [new file with mode: 0755]
tests/thrusection/specific/A7 [new file with mode: 0755]
tests/thrusection/specific/A8 [new file with mode: 0755]
tests/thrusection/specific/A9 [new file with mode: 0755]
tests/thrusection/specific/B1 [new file with mode: 0755]
tests/thrusection/specific/B2 [new file with mode: 0755]
tests/thrusection/specific/B3 [new file with mode: 0755]
tests/thrusection/specific/B4 [new file with mode: 0755]
tests/thrusection/specific/B5 [new file with mode: 0755]
tests/thrusection/specific/B6 [new file with mode: 0755]
tests/thrusection/specific/B7 [new file with mode: 0755]
tests/thrusection/specific/B8 [new file with mode: 0755]
tests/thrusection/specific/B9 [new file with mode: 0755]
tests/thrusection/specific/C1 [new file with mode: 0755]
tests/thrusection/specific/C2 [new file with mode: 0755]
tests/thrusection/specific/C3 [new file with mode: 0755]
tests/thrusection/specific/C4 [new file with mode: 0755]
tests/thrusection/specific/C5 [new file with mode: 0755]
tests/thrusection/specific/C6 [new file with mode: 0755]
tests/thrusection/specific/C7 [new file with mode: 0755]
tests/thrusection/specific/C8 [new file with mode: 0755]
tests/thrusection/specific/C9 [new file with mode: 0755]
tests/thrusection/specific/D1 [new file with mode: 0755]
tests/thrusection/specific/D2 [new file with mode: 0755]
tests/thrusection/specific/D3 [new file with mode: 0755]
tests/thrusection/specific/D4 [new file with mode: 0755]
tests/thrusection/specific/D5 [new file with mode: 0755]
tests/thrusection/specific/D6 [new file with mode: 0755]
tests/thrusection/specific/D7 [new file with mode: 0755]
tests/thrusection/specific/D8 [new file with mode: 0755]
tests/thrusection/specific/D9 [new file with mode: 0755]
tests/thrusection/specific/E1 [new file with mode: 0755]
tests/thrusection/specific/E2 [new file with mode: 0755]
tests/thrusection/specific/E3 [new file with mode: 0755]
tests/thrusection/specific/E4 [new file with mode: 0755]
tests/thrusection/specific/E5 [new file with mode: 0755]
tests/thrusection/specific/E6 [new file with mode: 0755]
tests/thrusection/specific/E7 [new file with mode: 0755]
tests/thrusection/specific/E8 [new file with mode: 0755]
tests/thrusection/specific/E9 [new file with mode: 0755]
tests/thrusection/specific/F1 [new file with mode: 0755]
tests/thrusection/specific/F2 [new file with mode: 0755]
tests/thrusection/specific/F3 [new file with mode: 0755]
tests/thrusection/specific/F4 [new file with mode: 0755]
tests/thrusection/specific/F5 [new file with mode: 0755]
tests/thrusection/specific/F6 [new file with mode: 0755]
tests/thrusection/specific/F7 [new file with mode: 0755]
tests/thrusection/specific/F8 [new file with mode: 0755]
tests/thrusection/specific/F9 [new file with mode: 0755]
tests/thrusection/specific/G1 [new file with mode: 0755]
tests/thrusection/specific/G2 [new file with mode: 0755]
tests/thrusection/specific/G3 [new file with mode: 0755]
tests/thrusection/specific/G4 [new file with mode: 0755]
tests/thrusection/specific/G5 [new file with mode: 0755]
tests/thrusection/specific/G6 [new file with mode: 0755]
tests/thrusection/specific/H1 [new file with mode: 0755]
tests/thrusection/specific/H2 [new file with mode: 0755]
tests/thrusection/specific/H3 [new file with mode: 0755]
tests/thrusection/specific/H4 [new file with mode: 0755]
tests/thrusection/specific/H5 [new file with mode: 0755]
tests/thrusection/specific/H6 [new file with mode: 0755]
tests/thrusection/specific/H7 [new file with mode: 0755]
tests/thrusection/specific/H8 [new file with mode: 0755]
tests/thrusection/specific/H9 [new file with mode: 0755]
tests/thrusection/specific/I1 [new file with mode: 0755]
tests/thrusection/specific/I2 [new file with mode: 0755]
tests/thrusection/specific/I3 [new file with mode: 0755]
tests/thrusection/specific/I4 [new file with mode: 0755]
tests/thrusection/specific/I5 [new file with mode: 0755]
tests/thrusection/specific/I6 [new file with mode: 0755]
tests/thrusection/specific/I7 [new file with mode: 0755]
tests/thrusection/specific/I8 [new file with mode: 0755]
tests/thrusection/specific/I9 [new file with mode: 0755]
tests/thrusection/specific/J1 [new file with mode: 0755]
tests/thrusection/specific/J2 [new file with mode: 0755]
tests/thrusection/specific/J3 [new file with mode: 0755]
tests/thrusection/specific/J4 [new file with mode: 0755]
tests/thrusection/specific/J5 [new file with mode: 0755]
tests/thrusection/specific/J6 [new file with mode: 0755]
tests/thrusection/specific/J7 [new file with mode: 0755]
tests/thrusection/specific/J8 [new file with mode: 0755]
tests/thrusection/specific/J9 [new file with mode: 0755]
tests/thrusection/specific/K1 [new file with mode: 0755]
tests/thrusection/specific/K2 [new file with mode: 0755]
tests/thrusection/specific/K3 [new file with mode: 0755]
tests/thrusection/specific/K4 [new file with mode: 0755]
tests/thrusection/specific/K5 [new file with mode: 0755]
tests/thrusection/specific/K6 [new file with mode: 0755]
tests/thrusection/specific/K7 [new file with mode: 0755]
tests/thrusection/specific/K8 [new file with mode: 0755]
tests/thrusection/specific/K9 [new file with mode: 0755]
tests/thrusection/specific/L1 [new file with mode: 0755]
tests/thrusection/specific/L2 [new file with mode: 0755]
tests/thrusection/specific/L3 [new file with mode: 0755]
tests/thrusection/specific/L4 [new file with mode: 0755]
tests/thrusection/specific/L5 [new file with mode: 0755]
tests/thrusection/specific/L6 [new file with mode: 0755]
tests/thrusection/specific/L7 [new file with mode: 0755]
tests/thrusection/specific/L8 [new file with mode: 0755]
tests/thrusection/specific/L9 [new file with mode: 0755]
tests/thrusection/specific/M1 [new file with mode: 0755]
tests/thrusection/specific/M2 [new file with mode: 0755]
tests/thrusection/specific/M3 [new file with mode: 0755]
tests/thrusection/specific/M4 [new file with mode: 0755]
tests/thrusection/specific/M5 [new file with mode: 0755]
tests/thrusection/specific/M6 [new file with mode: 0755]
tests/thrusection/specific/M7 [new file with mode: 0755]
tests/thrusection/specific/M8 [new file with mode: 0755]
tests/thrusection/specific/M9 [new file with mode: 0755]
tests/thrusection/specific/N1 [new file with mode: 0755]
tests/thrusection/specific/N2 [new file with mode: 0755]
tests/thrusection/specific/N3 [new file with mode: 0755]
tests/thrusection/specific/N4 [new file with mode: 0755]

diff --git a/tests/bugs/caf/bug1138 b/tests/bugs/caf/bug1138
new file mode 100755 (executable)
index 0000000..e2dd13b
--- /dev/null
@@ -0,0 +1,33 @@
+puts "TODO ?OCC12345 ALL: An exception was caught"
+puts "TODO ?OCC12345 ALL: Faulty OCC1138 : here is reading problem when the filename is a directory name."
+puts "TODO ?OCC12345 ALL: Faulty OCC1138"
+
+puts "================"
+puts "OCC1138"
+puts "================"
+puts ""
+#######################################################################################
+# OSD_SIGSEGV is thrown during call LDOMParser.parse method
+#######################################################################################
+
+pload QAcommands
+
+set BugNumber OCC1138
+
+set status 0
+decho off
+if [catch { OCC983 ${imagedir} } result] {
+decho on
+  puts "Faulty ${BugNumber} : here is reading problem when the filename is a directory name."
+  set status 1
+} else {
+  puts "Reading ${BugNumber} OK : here is not reading problem when the filename is a directory name."
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/caf/bug21231 b/tests/bugs/caf/bug21231
new file mode 100755 (executable)
index 0000000..ec681a3
--- /dev/null
@@ -0,0 +1,95 @@
+puts "TODO ?OCC12345 ALL: Error: Document not saved"
+puts "TODO ?OCC12345 ALL: Error: Object obj2 not found"
+puts "TODO ?OCC12345 ALL: Tcl Exception: Error: Object obj2 not found"
+puts "TODO ?OCC12345 ALL: TEST INCOMPLETE"
+puts "============"
+puts "OCC21231"
+puts "============"
+puts ""
+#######################################################################
+#######################################################################
+
+set BugNumber OCC21231
+set status 0
+
+pload TOBJ
+
+# Create a new document
+TObjNew TD1
+
+TObjAddObj TD1 obj1
+TObjAddObj TD1 obj2
+TObjAddObj TD1 obj3
+
+set parent "obj1 obj2 obj2"
+set children "ch11 ch21 ch22"
+for { set i 0} {$i <= 2} {incr i} {
+  set p [lindex $parent $i]
+  set ch [lindex $children $i]
+  TObjAddChild TD1 $p $ch
+}
+
+TObjSetRef TD1 obj1 obj2
+
+TObjSetVal TD1 obj1 533
+TObjSetVal TD1 obj2 -r 3 3.14 2.78 0.123
+
+# Save the document
+set aFile $imagedir/${test_image}-[file tail [info script]].cbf
+catch {[file delete ${aFile}]}
+catch {TObjSave TD1 ${aFile}}
+if { ![file exists ${aFile}] } {
+   set status 1
+   puts "There is not ${aFile} file; TObjSave command: Error"
+   puts "${BugNumber}: ERROR"
+} else {
+   puts "Save the document to ${aFile} file"
+}
+
+TObjClose TD1
+unset TD1
+
+# Restore the document
+if [catch { TObjLoad TD2 ${aFile} } catch_result] {
+   puts "${BugNumber}: ERROR"
+}
+
+# check children of obj2
+set retChh [TObjGetChildren TD2 obj2]
+for { set i 1 } { $i <= 2} {incr i} {
+  set chh [lindex $retChh [expr $i - 1]]
+  set oldCh [lindex $children $i]
+  if { $chh != $oldCh } {
+    set status 1
+    puts "${BugNumber}: check children of obj2; ERROR (case 1)"
+  }
+}
+
+# check reference from obj1
+set retRef [TObjGetRef TD2 obj1]
+if { $retRef != "obj2" } {
+    set status 1
+    puts "${BugNumber}: check reference from obj1; ERROR (case 2)"
+}
+
+# check stored single integer value
+set retInt [TObjGetVal TD2 obj1 -i]
+if { $retInt != 533 } {
+    set status 1
+    puts "${BugNumber}: check stored single integer value; ERROR (case 3)"
+}
+
+# check stored array of doubles
+set retDbl [TObjGetVal TD2 obj2 -r]
+set nbVal [llength $retDbl]
+if { $nbVal != 3 } {
+    set status 1
+    puts "${BugNumber}: check stored array of doubles; ERROR (case 4)"
+}
+
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/caf/bug22976 b/tests/bugs/caf/bug22976
new file mode 100755 (executable)
index 0000000..b6767a5
--- /dev/null
@@ -0,0 +1,25 @@
+puts "==========="
+puts "OCC22976"
+puts "==========="
+######################################################
+# A draw-command CopyDF failes to copy content of a label
+######################################################
+
+set BugNumber OCC22976
+
+# Create a new document and set UndoLimit
+NewDocument D
+UndoLimit D 100
+
+# Open a transaction
+NewCommand D
+
+SetReal D 0:1 1.2345
+CopyDF D 0:1 0:2
+catch { GetReal D 0:2 } catch_result
+
+if { $catch_result == 1.2344999999999999 } {
+   puts "OK ${BugNumber}"
+} else {
+  puts "Faulty ${BugNumber}"
+}
diff --git a/tests/bugs/caf/bug22995 b/tests/bugs/caf/bug22995
new file mode 100755 (executable)
index 0000000..257e8d2
--- /dev/null
@@ -0,0 +1,30 @@
+puts "========================"
+puts "OCC22995"
+puts "========================"
+puts ""
+##################################################################################################
+# It is not possible to check presence of a document in OCAF session via IsInSession() on Windows
+##################################################################################################
+
+set BugNumber OCC22995
+
+set status 0
+set aFile1 $imagedir/${test_image}-1.std
+set aFile2 $imagedir/${test_image}-2.std
+
+NewDocument D MDTV-Standard
+
+if { [file exists ${aFile1}] } {
+    file delete ${aFile1}
+}
+if { [file exists ${aFile2}] } {
+    file delete ${aFile2}
+}
+SaveAs D ${aFile1}
+set info1 [ IsInSession ${aFile1} ]
+set info0 [ IsInSession ${aFile2} ]
+if { ${info1} == 1 && ${info0} == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
diff --git a/tests/bugs/caf/bug23071 b/tests/bugs/caf/bug23071
new file mode 100755 (executable)
index 0000000..d7e45ab
--- /dev/null
@@ -0,0 +1,82 @@
+puts "================"
+puts "OCC23071"
+puts "================"
+puts ""
+###################################################################################################
+# Comparison of file extension is case sensitive
+###################################################################################################
+
+set BugNumber OCC23071
+
+set FileName $imagedir/${test_image}.STD
+set FileName2 $imagedir/${test_image}.std
+set FileName3 ${FileName}.std
+
+set status 0
+
+file delete ${FileName}
+if [file exists ${FileName}] {
+  puts "There is temporary ${FileName} file"
+  set status 1
+}
+file delete ${FileName2}
+if [file exists ${FileName2}] {
+  puts "There is temporary ${FileName2} file"
+  set status 1
+}
+file delete ${FileName3}
+if [file exists ${FileName3}] {
+  puts "There is temporary ${FileName3} file"
+  set status 1
+}
+
+catch { NewDocument D MDTV-Standard }
+
+if [catch {SaveAs D ${FileName} }] {
+  puts "Faulty ${BugNumber} ; SaveAs command: Error"
+  set status 1
+} else {
+
+#  if [file exists ${WorkDirectory}/${FileName}] {
+#    puts "There is ${FileName} file"
+#  } else {
+#    puts "There is not ${FileName} file"
+#  }
+
+  if [file exists ${FileName2}] {
+    puts "There is ${FileName2} file"
+  } else {
+    puts "There is not ${FileName2} file"
+    #
+    
+    if { [string compare $tcl_platform(platform) "windows"] == 0 } {
+      puts "OS = Windows NT"
+      set status 1
+    }
+    #
+  }
+
+  if [file exists ${FileName3}] {
+    puts "There is ${FileName3} file"
+  } else {
+    puts "There is not ${FileName3} file"
+    #
+    if { [string compare $tcl_platform(platform) "windows"] == 0 } {
+      puts "OS = Windows NT"
+    } else {
+      puts "OS = Unix"
+      set status 1
+    }
+  }
+
+}
+
+# Resume
+puts ""
+if { ${status} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+
diff --git a/tests/bugs/caf/bug23306 b/tests/bugs/caf/bug23306
new file mode 100755 (executable)
index 0000000..e39b07a
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC23306"
+puts "============"
+puts ""
+####################################################################################
+# Failures reading some attributes of BinOcaf document
+####################################################################################
+
+set BugNumber OCC23306
+
+NewDocument D1 BinOcaf
+SetExtStringArray D1 0:1:1 0 1 3 String1 String2 String3
+SaveAs D1 ${imagedir}/ocaf1.cbf
+Close D1
+set warn [Open ${imagedir}/ocaf1.cbf D2]
+set info [lsearch $warn "warning:"]
+
+if { $info == -1 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
+
+
+
+
+
diff --git a/tests/bugs/caf/bug9746 b/tests/bugs/caf/bug9746
new file mode 100755 (executable)
index 0000000..ddf7d7f
--- /dev/null
@@ -0,0 +1,175 @@
+puts "TODO OCC12345 ALL: Dump1 : Faulty"
+puts "TODO OCC12345 ALL: Dump2 : Faulty"
+puts "TODO OCC12345 ALL: Dump3 : Faulty"
+puts "TODO OCC12345 ALL: Dump4 : Faulty"
+puts "TODO OCC12345 ALL: Dump5 : Faulty"
+puts "TODO OCC12345 ALL: Dump6 : Faulty"
+puts "TODO OCC12345 ALL: Faulty OCC9746"
+
+puts "============"
+puts "OCC9746"
+puts "============"
+puts ""
+#######################################################################
+# Incorrect writing of integer array in BinMNaming_NamingDriver::Paste
+#######################################################################
+
+set BugNumber OCC9746
+
+# Create a new document
+NewDocument D BinOcaf
+
+box b 130 111 145
+ttranslate b 35 1 1
+pcylinder cyl 50 120 230
+ttranslate cyl 1 1 75
+
+set aLab1 [ImportShape D 0:2 b Box1]
+set aLab2 [ImportShape D 0:3 cyl Cylinder]
+
+GetShape D $aLab1 S
+explode S F
+set BoxNamLab [Label D 0:4]
+SelectShape D $BoxNamLab:1 S_1 S
+SelectShape D $BoxNamLab:2 S_2 S
+SelectShape D $BoxNamLab:3 S_3 S
+SelectShape D $BoxNamLab:4 S_4 S
+SelectShape D $BoxNamLab:5 S_5 S
+SelectShape D $BoxNamLab:6 S_6 S
+
+GetShape D $aLab2 C
+explode C F
+set CylNamLab [Label D 0:5]
+SelectShape D $CylNamLab:1 C_1 C
+SelectShape D $CylNamLab:2 C_2 C
+
+explode S E
+SelectShape D $BoxNamLab:10 S_1 S
+SelectShape D $BoxNamLab:11 S_3 S
+
+explode S V
+SelectShape D $BoxNamLab:21 S_3 S
+SelectShape D $BoxNamLab:22 S_5 S
+
+explode C V
+SelectShape D $CylNamLab:10 C_1 C
+SelectShape D $CylNamLab:11 C_2 C
+SelectShape D $CylNamLab:12 C_3 C
+
+# Save the document
+set aFile ${imagedir}/OCC9746-Z3.cbf
+file delete ${aFile}
+SaveAs D ${aFile}
+if { ![file exists ${aFile}] } {
+   puts "There is not ${aFile} file; SaveAs command: Error"
+   puts "${BugNumber}: ERROR (case 1)"
+}
+catch {exec chmod 777 ${aFile}}
+
+Close D
+
+# Restore the document
+catch {Open ${aFile} DDoc}
+
+#
+set BoxNamLab [Label DDoc 0:4]
+set CylNamLab [Label DDoc 0:5]
+
+# one Naming argument
+Attachment DDoc $BoxNamLab:1
+Attachment DDoc $BoxNamLab:2
+Attachment DDoc $BoxNamLab:3
+Attachment DDoc $BoxNamLab:4
+Attachment DDoc $BoxNamLab:5
+Attachment DDoc $BoxNamLab:6
+
+# two Naming arguments
+Attachment DDoc $BoxNamLab:10
+Attachment DDoc $BoxNamLab:11
+GetShape DDoc $BoxNamLab:10
+GetShape DDoc $BoxNamLab:11
+
+# three naming arguments
+Attachment DDoc $BoxNamLab:21
+Attachment DDoc $BoxNamLab:22
+GetShape DDoc $BoxNamLab:21
+GetShape DDoc $BoxNamLab:22
+
+# one naming argument
+Attachment DDoc $CylNamLab:1
+Attachment DDoc $CylNamLab:2
+GetShape DDoc $CylNamLab:1
+GetShape DDoc $CylNamLab:2
+
+# three naming arguments
+Attachment DDoc $CylNamLab:10
+GetShape DDoc $CylNamLab:10
+set Dump1 [DumpSelection DDoc $CylNamLab:10]
+set Dump2 [DumpSelection DDoc $CylNamLab:10:1]
+
+Attachment DDoc $CylNamLab:11
+GetShape DDoc $CylNamLab:11
+set Dump3 [DumpSelection DDoc $CylNamLab:11]
+set Dump4 [DumpSelection DDoc $CylNamLab:10:1]
+
+Attachment DDoc $CylNamLab:12
+GetShape DDoc $CylNamLab:12
+set Dump5 [DumpSelection DDoc $CylNamLab:12]
+set Dump6 [DumpSelection DDoc $CylNamLab:12:1]
+
+#
+set Good_Dump1 "IDENTITY VERTEX 0:5:10:1 Stop 0:5:10:1\n"
+set Good_Dump2 "INTERSECTION VERTEX 0:3:5 0:3:1 0:3:2 Stop 0:3:2\n"
+set Good_Dump3 "IDENTITY VERTEX 0:5:11:1 Stop 0:5:11:1\n"
+set Good_Dump4 "INTERSECTION VERTEX 0:3:5 0:3:1 0:3:2 Stop 0:3:2\n"
+set Good_Dump5 "IDENTITY VERTEX 0:5:12:1 Stop 0:5:12:1\n"
+set Good_Dump6 "INTERSECTION VERTEX 0:3:3 0:3:5 0:3:1 Stop 0:3:1\n"
+#
+
+# Checking
+set status 0
+puts ""
+if { ${Dump1} != ${Good_Dump1} } {
+   set status 1
+   puts "Dump1 : Faulty"
+} else {
+   puts "Dump1 : OK"
+}
+if { ${Dump2} != ${Good_Dump2} } {
+   set status 1
+   puts "Dump2 : Faulty"
+} else {
+   puts "Dump2 : OK"
+}
+if { ${Dump3} != ${Good_Dump3} } {
+   set status 1
+   puts "Dump3 : Faulty"
+} else {
+   puts "Dump3 : OK"
+}
+if { ${Dump4} != ${Good_Dump4} } {
+   set status 1
+   puts "Dump4 : Faulty"
+} else {
+   puts "Dump4 : OK"
+}
+if { ${Dump5} != ${Good_Dump5} } {
+   set status 1
+   puts "Dump5 : Faulty"
+} else {
+   puts "Dump5 : OK"
+}
+if { ${Dump6} != ${Good_Dump6} } {
+   set status 1
+   puts "Dump6 : Faulty"
+} else {
+   puts "Dump6 : OK"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/fclasses/bug15489 b/tests/bugs/fclasses/bug15489
new file mode 100755 (executable)
index 0000000..8801775
--- /dev/null
@@ -0,0 +1,62 @@
+puts "==========="
+puts "OCC15489"
+puts "==========="
+
+set BugNumber OCC15489
+
+######################################################
+# Constructor gp_Lin2d(A, B, C) creates line with origin point in infinity
+######################################################
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+pload QAcommands
+
+set A 1e-20
+set B -1.
+set C 2.
+
+set OriginList [OCC15489 $A $B $C]
+regexp {X_0 += +([-0-9.+eE]+)} $OriginList full X_0
+regexp {Y_0 += +([-0-9.+eE]+)} $OriginList full Y_0
+
+set percent_max 0.1
+set good_X_0 -1.9999999999999999e-20
+set good_Y_0 2
+set status 0
+
+set X_0_percent [GetPercent ${X_0} ${good_X_0}]
+puts "X_0_percent = ${X_0_percent}"
+if { ${X_0_percent} > ${percent_max} } {
+   puts "X_0: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "X_0: OK ${BugNumber}"
+}
+
+set Y_0_percent [GetPercent ${Y_0} ${good_Y_0}]
+puts "Y_0_percent = ${Y_0_percent}"
+if { ${Y_0_percent} > ${percent_max} } {
+   puts "Y_0: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "Y_0: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/heal/bug22587 b/tests/bugs/heal/bug22587
new file mode 100755 (executable)
index 0000000..8e3e03c
--- /dev/null
@@ -0,0 +1,29 @@
+puts "================"
+puts "OCC22587"
+puts "================"
+puts ""
+######################################################################################
+# Problem with missing seam fixer
+######################################################################################
+
+set BugNumber OCC22587
+
+catch {pload XDE}
+
+restore [locate_data_file OCC22587-face.brep] f 
+fixshape result f -l -o -h +m -d -s -i -n
+set info [checkshape result]
+
+# Resume
+puts ""
+if { [regexp {This shape seems to be valid} $info] } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+set square 290.283
+set 2dviewer 0
+
+
+
+
diff --git a/tests/bugs/heal/bug22924 b/tests/bugs/heal/bug22924
new file mode 100755 (executable)
index 0000000..da668c0
--- /dev/null
@@ -0,0 +1,38 @@
+puts "================"
+puts "OCC22924"
+puts "================"
+puts ""
+######################################################################################
+# We need more stable work of ShapeAnalysis_FreeBounds::ConnectEdgesToWires()
+######################################################################################
+
+set BugNumber OCC22924
+
+pload XDE
+
+set order {1 2 3 4 5 6 7 8 9 10}
+restore [locate_data_file bug22924_3D_Sketcher.brep] a 
+set err 0
+set numcheck 100
+set lord [split $order " "]
+for {set i 1} {$i <= $numcheck} {incr i} {
+    set val [connectedges r a]
+    set lnum [lindex [split $val \n] 1]
+    set llnum [split $lnum " "]
+    set ll [llength $llnum]
+    for {set j 0} {$j <= $ll} {incr j} {
+        set ref_val [lindex $lord $j]
+        set check_val [lindex $llnum $j]
+       if {$ref_val == $check_val} {
+            continue
+       }
+       incr err
+    }
+}
+
+if $err  {
+    puts "Error $err"
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK"
+}
diff --git a/tests/bugs/iges/bug13627 b/tests/bugs/iges/bug13627
new file mode 100755 (executable)
index 0000000..13b99bd
--- /dev/null
@@ -0,0 +1,14 @@
+puts "============"
+puts "OCC13627"
+puts "============"
+puts ""
+########################################################################
+# Crash during reading a.igs file on Linux (RedHat) platform
+########################################################################
+
+set BugNumber OCC13627
+
+igesread [locate_data_file OCC13627.igs] a *
+tpcompound result
+
+set 2dviewer 0
diff --git a/tests/bugs/iges/bug15755 b/tests/bugs/iges/bug15755
new file mode 100755 (executable)
index 0000000..e3748de
--- /dev/null
@@ -0,0 +1,16 @@
+puts "==========="
+puts "OCC15755"
+puts "==========="
+
+set BugNumber OCC15755
+
+######################################################
+# IGESData_IGESEntity::NameValue returns nothing when nbname > 1
+######################################################
+
+pload QAcommands
+
+OCC15755 [locate_data_file OCC15755.igs] result
+
+set 2dviewer 0
+
diff --git a/tests/bugs/iges/bug16569 b/tests/bugs/iges/bug16569
new file mode 100755 (executable)
index 0000000..622089e
--- /dev/null
@@ -0,0 +1,10 @@
+puts "========"
+puts "OCC16569"
+puts "========"
+puts ""
+######################################################
+# Exception in IGESDraw_Planar::Init when allEntities parameter is a null handle
+######################################################
+
+igesbrep [locate_data_file OCC16569.igs] a *
+
diff --git a/tests/bugs/iges/bug16662 b/tests/bugs/iges/bug16662
new file mode 100755 (executable)
index 0000000..0d81d10
--- /dev/null
@@ -0,0 +1,14 @@
+puts "==========="
+puts "OCC16662"
+puts "==========="
+puts ""
+#######################################################################
+# Crash in ShapeAnalysis_Wire::CheckSmall
+#######################################################################
+
+set BugNumber OCC16662
+
+igesread [locate_data_file OCC16662.igs] a *
+tpcompound result
+
+set 2dviewer 0
diff --git a/tests/bugs/iges/bug17026_1 b/tests/bugs/iges/bug17026_1
new file mode 100755 (executable)
index 0000000..f680c37
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC17026"
+puts "============"
+puts ""
+########################################################################
+# Problem of reading IGES files
+########################################################################
+
+igesread [locate_data_file OCC17026-1.igs] a *
+tpcompound result
+
+set square 8.76948e+09
+set nb_v_good 8
+set nb_e_good 12
+set nb_w_good 4
+set nb_f_good 4
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 2
+set nb_shape_good 30
+
+set 2dviewer 0
+
diff --git a/tests/bugs/iges/bug17026_2 b/tests/bugs/iges/bug17026_2
new file mode 100755 (executable)
index 0000000..98f7f9b
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC17026"
+puts "============"
+puts ""
+########################################################################
+# Problem of reading IGES files
+########################################################################
+
+igesread [locate_data_file OCC17026-2.igs] a *
+tpcompound result
+
+set square 8.80533e+09
+set nb_v_good 8
+set nb_e_good 12
+set nb_w_good 4
+set nb_f_good 4
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 2
+set nb_shape_good 30
+
+set 2dviewer 0
+
diff --git a/tests/bugs/iges/bug17026_3 b/tests/bugs/iges/bug17026_3
new file mode 100755 (executable)
index 0000000..afa4a8c
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC17026"
+puts "============"
+puts ""
+########################################################################
+# Problem of reading IGES files
+########################################################################
+
+cpulimit 2000
+igesread [locate_data_file OCC17026-3.iges] a *
+tpcompound result
+
+set square 7.72668e+08
+set nb_v_good 175
+set nb_e_good 175
+set nb_w_good 38
+set nb_f_good 38
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 2
+set nb_shape_good 428
+
+set 2dviewer 0
diff --git a/tests/bugs/iges/bug17026_4 b/tests/bugs/iges/bug17026_4
new file mode 100755 (executable)
index 0000000..c37c7aa
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC17026"
+puts "============"
+puts ""
+########################################################################
+# Problem of reading IGES files
+########################################################################
+
+igesread [locate_data_file OCC17026-4.iges] a *
+tpcompound result
+
+set square 7.72668e+08
+set nb_v_good 175
+set nb_e_good 175
+set nb_w_good 38
+set nb_f_good 38
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 2
+set nb_shape_good 428
+
+set 2dviewer 0
index 3490337..f40c35f 100755 (executable)
@@ -1,5 +1,16 @@
 set subgroup modalg
 
 set subgroup modalg
 
+set calcul "p"
+set type "i"
+
+proc OFFSETSHAPE {distance faces calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+
 
 
 
 
 
 
diff --git a/tests/bugs/modalg/bug11565_1 b/tests/bugs/modalg/bug11565_1
new file mode 100755 (executable)
index 0000000..29a46b5
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC11565"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation "Cut" in 2d cannot cut the hole from the rectangle
+#######################################################################
+
+restore [locate_data_file OCC11565.brep] a
+explode a
+
+bop a_1 a_2
+bopcut result
+
+set square 28.6255
+set nb_v_good 12
+set nb_e_good 12
+set nb_w_good 2
+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 29
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug11565_2 b/tests/bugs/modalg/bug11565_2
new file mode 100755 (executable)
index 0000000..3a2358b
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC11565"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation "Cut" in 2d cannot cut the hole from the rectangle
+#######################################################################
+
+restore [locate_data_file OCC11565.brep] a
+explode a
+
+bop a_1 a_3
+bopcut result
+
+set square 28.6438
+set nb_v_good 12
+set nb_e_good 12
+set nb_w_good 2
+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 29
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug12507 b/tests/bugs/modalg/bug12507
new file mode 100755 (executable)
index 0000000..dbef9be
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC12507"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of fuse operation
+#######################################################################
+
+puts "First shape ..."
+pcylinder c 3 3
+explode c e
+
+puts "Second shape ..."
+tcopy c_3 e3
+ttranslate e3 0 6 0
+
+bop c_3 e3
+bopfuse result
+
+set nb_v_good 3
+set nb_e_good 4
+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 1
+set nb_shape_good 9
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug12627 b/tests/bugs/modalg/bug12627
new file mode 100755 (executable)
index 0000000..073bbad
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC12627"
+puts "============"
+puts ""
+#######################################################################
+# Classification of a point comparing to a face is incorrect
+#######################################################################
+
+set BugNumber OCC12627
+
+restore [locate_data_file OCC12627_1.brep] b1
+restore [locate_data_file OCC12627_2.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 272295
+set nb_v_good 13
+set nb_e_good 20
+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 54
+
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug12661 b/tests/bugs/modalg/bug12661
new file mode 100755 (executable)
index 0000000..762d9f9
--- /dev/null
@@ -0,0 +1,82 @@
+puts "================"
+puts "OCC12661"
+puts "================"
+puts ""
+#######################################################################################
+# Wrong calculation of bnd box for edge if edge has polygon of triangulation
+#######################################################################################
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+set BugNumber OCC12661
+
+restore [locate_data_file OCC12661.brep] result
+set res [bounding result]
+
+set x1 [lindex ${res} 0]
+set y1 [lindex ${res} 1]
+set z1 [lindex ${res} 2]
+set x2 [lindex ${res} 3]
+set y2 [lindex ${res} 4]
+set z2 [lindex ${res} 5]
+
+set good_x1 -6.3659273065258741
+set good_y1 0.7051405053395956
+set good_z1 -2.5792617865186296
+set good_x2 6.3659273065258795
+set good_y2 7.6599592236605769
+set good_z2 3.0815250146676485
+
+set percent_max 0.1
+set status 0
+
+set x1_percent [GetPercent ${x1} ${good_x1}]
+set y1_percent [GetPercent ${y1} ${good_y1}]
+set z1_percent [GetPercent ${z1} ${good_z1}]
+set x2_percent [GetPercent ${x2} ${good_x2}]
+set y2_percent [GetPercent ${y2} ${good_y2}]
+set z2_percent [GetPercent ${z2} ${good_z2}]
+
+if {${x1_percent} > ${percent_max}} {
+    puts "Faulty ${BugNumber} : x1 is wrong"
+    set status 1
+}
+if {${y1_percent} > ${percent_max}} {
+    puts "Faulty ${BugNumber} : y1 is wrong"
+    set status 1
+}
+if {${z1_percent} > ${percent_max}} {
+    puts "Faulty ${BugNumber} : z1 is wrong"
+    set status 1
+}
+if {${x2_percent} > ${percent_max}} {
+    puts "Faulty ${BugNumber} : x2 is wrong"
+    set status 1
+}
+if {${y2_percent} > ${percent_max}} {
+    puts "Faulty ${BugNumber} : y2 is wrong"
+    set status 1
+}
+if {${z2_percent} > ${percent_max}} {
+    puts "Faulty ${BugNumber} : z2 is wrong"
+    set status 1
+}
+
+if { ${status} == 0 } {
+    puts "${BugNumber}: OK"
+} else {
+    puts "${BugNumber}: Faulty"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug12918 b/tests/bugs/modalg/bug12918
new file mode 100755 (executable)
index 0000000..079b51f
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC12918"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operations failed
+#######################################################################
+
+set BugNumber OCC12918
+
+restore [locate_data_file OCC12918_1.brep] b1
+restore [locate_data_file OCC12918_2.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 0.00240038
+set nb_v_good 24
+set nb_e_good 36
+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 91
+
+set 2dviewer 1
+
diff --git a/tests/bugs/modalg/bug13116_1 b/tests/bugs/modalg/bug13116_1
new file mode 100755 (executable)
index 0000000..45a23c3
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC13116"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operations produce faulty shape
+#######################################################################
+
+set BugNumber OCC13116
+
+restore [locate_data_file OCC13116_sh1.brep] b1
+restore [locate_data_file OCC13116_sh2.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 438194
+set nb_v_good 21
+set nb_e_good 37
+set nb_w_good 16
+set nb_f_good 16
+set nb_sh_good 2
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 94
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13116_2 b/tests/bugs/modalg/bug13116_2
new file mode 100755 (executable)
index 0000000..4cd36f3
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13116"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operations produce faulty shape
+#######################################################################
+
+restore [locate_data_file OCC13116_sh1.brep] b1
+restore [locate_data_file OCC13116_sh2.brep] b2
+
+bop b1 b2
+bopcommon result
+
+set square 3769.91
+set nb_v_good 3
+set nb_e_good 5
+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 15
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13116_3 b/tests/bugs/modalg/bug13116_3
new file mode 100755 (executable)
index 0000000..5f36a5e
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13116"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operations produce faulty shape
+#######################################################################
+
+restore [locate_data_file OCC13116_sh1.brep] b1
+restore [locate_data_file OCC13116_sh2.brep] b2
+
+bop b1 b2
+bopcut result
+
+set square 438194
+set nb_v_good 21
+set nb_e_good 34
+set nb_w_good 15
+set nb_f_good 15
+set nb_sh_good 2
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 89
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13116_4 b/tests/bugs/modalg/bug13116_4
new file mode 100755 (executable)
index 0000000..a436470
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13116"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operations produce faulty shape
+#######################################################################
+
+restore [locate_data_file OCC13116_sh1.brep] b1
+restore [locate_data_file OCC13116_sh2.brep] b2
+
+bop b1 b2
+boptuc result
+
+set square 3769.89
+set nb_v_good 3
+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 20
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13140 b/tests/bugs/modalg/bug13140
new file mode 100755 (executable)
index 0000000..4f61822
--- /dev/null
@@ -0,0 +1,47 @@
+puts "============"
+puts "OCC13140"
+puts "============"
+puts ""
+#######################################################################
+# Exception during creation pipe on from attached spine and profile
+#######################################################################
+
+restore [locate_data_file OCC13140_Spine.brep] Spine
+restore [locate_data_file OCC13140_Profile.brep] Profile
+
+pipe result Spine Profile
+
+set square 3.48689
+set good_vertex 2
+set good_edge 3
+set good_wire 1
+set good_face 1
+
+set explode_v_length  [llength [explode result v] ]
+set explode_e_length  [llength [explode result e] ]
+set explode_w_length  [llength [explode result w] ]
+set explode_f_length  [llength [explode result f] ]
+
+if { ${explode_v_length} != ${good_vertex} } {
+   puts "vertex: Faulty"
+} else {
+   puts "vertex: OK"
+}
+if { ${explode_e_length} != ${good_edge} } {
+   puts "edge: Faulty"
+} else {
+   puts "edge: OK"
+}
+if { ${explode_w_length} != ${good_wire} } {
+   puts "wire: Faulty"
+} else {
+   puts "wire: OK"
+}
+if { ${explode_f_length} != ${good_face} } {
+   puts "face: Faulty"
+} else {
+   puts "face: OK"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13142 b/tests/bugs/modalg/bug13142
new file mode 100755 (executable)
index 0000000..e1563ca
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC13142"
+puts "============"
+puts ""
+#######################################################################
+# Exception is raised while performing boolean operations
+#######################################################################
+
+restore [locate_data_file OCC13142.brep] result
+
+vinit
+vdisplay result
+vfit
+vsetdispmode 1
+
+set square 513.007
+set nb_v_good 34
+set nb_e_good 66
+set nb_w_good 47
+set nb_f_good 42
+set nb_sh_good 9
+set nb_sol_good 9
+set nb_compsol_good 0
+set nb_compound_good 3
+set nb_shape_good 210
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13186_1 b/tests/bugs/modalg/bug13186_1
new file mode 100755 (executable)
index 0000000..1b98aed
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC13186"
+puts "============"
+puts ""
+#######################################################################
+# Problem with Boolean operation
+# Bug is reprodused on Linux platform only
+#######################################################################
+
+restore [locate_data_file OCC13186_cutcyl11.brep] b1
+restore [locate_data_file OCC13186_sphere.brep] b2
+
+bop b1 b2
+bopcut result
+
+set square 42.5841
+set nb_v_good 19
+set nb_e_good 25
+set nb_w_good 12
+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 66
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13186_2 b/tests/bugs/modalg/bug13186_2
new file mode 100755 (executable)
index 0000000..10c6b3b
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC13186"
+puts "============"
+puts ""
+#######################################################################
+# Problem with Boolean operation
+# Bug is reprodused on Linux platform only
+#######################################################################
+
+restore [locate_data_file OCC13186_cutcyl11.brep] b1
+restore [locate_data_file OCC13186_sphere.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 85.6816
+set nb_v_good 21
+set nb_e_good 28
+set nb_w_good 13
+set nb_f_good 8
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 73
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13186_3 b/tests/bugs/modalg/bug13186_3
new file mode 100755 (executable)
index 0000000..aa62fa0
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC13186"
+puts "============"
+puts ""
+#######################################################################
+# Problem with Boolean operation
+# Bug is reprodused on Linux platform only
+#######################################################################
+
+restore [locate_data_file OCC13186_cutcyl11.brep] b1
+restore [locate_data_file OCC13186_sphere.brep] b2
+
+bop b1 b2
+bopcommon result
+
+set square 14.9648
+set nb_v_good 8
+set nb_e_good 11
+set nb_w_good 7
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 34
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13186_4 b/tests/bugs/modalg/bug13186_4
new file mode 100755 (executable)
index 0000000..ccb5179
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC13186"
+puts "============"
+puts ""
+#######################################################################
+# Problem with Boolean operation
+# Bug is reprodused on Linux platform only
+#######################################################################
+
+restore [locate_data_file OCC13186_cutcyl11.brep] b1
+restore [locate_data_file OCC13186_sphere.brep] b2
+
+bop b1 b2
+boptuc result
+
+set square 58.0624
+set nb_v_good 10
+set nb_e_good 14
+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 1
+set nb_shape_good 41
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13209_1 b/tests/bugs/modalg/bug13209_1
new file mode 100755 (executable)
index 0000000..e42f64f
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13209"
+puts "============"
+puts ""
+#######################################################################
+# Exception is raised while performing boolean operations
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] b1
+restore [locate_data_file OCC13209_s2.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 17308.3
+set nb_v_good 13
+set nb_e_good 25
+set nb_w_good 13
+set nb_f_good 12
+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
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13209_2 b/tests/bugs/modalg/bug13209_2
new file mode 100755 (executable)
index 0000000..fcd4e9e
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC13209"
+puts "============"
+puts ""
+#######################################################################
+# Exception is raised while performing boolean operations
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] b1
+restore [locate_data_file OCC13209_s2.brep] b2
+
+bop b1 b2
+bopcommon result
+
+set square 2990.42
+set nb_v_good 13
+set nb_e_good 23
+set nb_w_good 10
+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 59
+
+set 2dviewer 0
+
+
+
+
diff --git a/tests/bugs/modalg/bug13209_3 b/tests/bugs/modalg/bug13209_3
new file mode 100755 (executable)
index 0000000..e9d940d
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13209"
+puts "============"
+puts ""
+#######################################################################
+# Exception is raised while performing boolean operations
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] b1
+restore [locate_data_file OCC13209_s2.brep] b2
+
+bop b1 b2
+bopcut result
+
+set square 17292.5
+set nb_v_good 13
+set nb_e_good 26
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 65
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13209_4 b/tests/bugs/modalg/bug13209_4
new file mode 100755 (executable)
index 0000000..c9de1b5
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13209"
+puts "============"
+puts ""
+#######################################################################
+# Exception is raised while performing boolean operations
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] b1
+restore [locate_data_file OCC13209_s2.brep] b2
+
+bop b1 b2
+boptuc result
+
+set square 3006.19
+set nb_v_good 11
+set nb_e_good 18
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 3
+set nb_sol_good 3
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 58
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13211_1 b/tests/bugs/modalg/bug13211_1
new file mode 100755 (executable)
index 0000000..4413d96
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+restore [locate_data_file OCC13211-f14.brep] b1
+restore [locate_data_file OCC13211-f24.brep] b2
+
+bop b1 b2
+bopsection result
+
+set length 37.7057
+set nb_v_good 5
+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 10
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_10 b/tests/bugs/modalg/bug13211_10
new file mode 100755 (executable)
index 0000000..79e24d1
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] s1
+restore [locate_data_file OCC13209_s2.brep] s2
+
+bop s1 s2
+boptuc result
+
+set square 3006.19
+set nb_v_good 11
+set nb_e_good 18
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 3
+set nb_sol_good 3
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 58
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13211_11 b/tests/bugs/modalg/bug13211_11
new file mode 100755 (executable)
index 0000000..5ecd0b9
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] s1
+restore [locate_data_file OCC13209_s2.brep] s2
+
+bop s1 s2
+bopsection result
+
+set length 228.699
+set nb_v_good 13
+set nb_e_good 15
+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 29
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_2 b/tests/bugs/modalg/bug13211_2
new file mode 100755 (executable)
index 0000000..9e78307
--- /dev/null
@@ -0,0 +1,46 @@
+puts "TODO ?OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+set BugNumber OCC13211
+
+vertex v1 136.06, 187.51, 0.0
+vertex v2 136.06, 143.01, 0.0
+edge e1 v1 v2
+vertex v3 136.06, 143.01, 0.0
+vertex v4 128.08, 143.01, 0.0
+edge e2 v3 v4
+vertex v5 128.08, 143.01, 0.0
+vertex v6 127.88, 164.75, 0.0
+edge e3 v5 v6
+vertex v7 127.88, 164.75, 0.0
+vertex v8 116.11, 176.00, 0.0
+edge e4 v7 v8
+vertex v9 116.11, 176.00, 0.0
+vertex v10 136.06, 187.51, 0.0
+edge e5 v9 v10
+wire twire e1 e2 e3 e4 e5
+mkplane tface twire
+revol r1 tface 153.08, 143.01 0.0 1 0 0 360 1
+revol r2 tface 136.06, 68.01, 0.0 0 1 0 360 1
+
+bop r1 r2
+bopfuse result
+
+set square 17308.3
+set nb_v_good 13
+set nb_e_good 25
+set nb_w_good 13
+set nb_f_good 12
+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
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_3 b/tests/bugs/modalg/bug13211_3
new file mode 100755 (executable)
index 0000000..5f60902
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+vertex v1 136.06, 187.51, 0.0
+vertex v2 136.06, 143.01, 0.0
+edge e1 v1 v2
+vertex v3 136.06, 143.01, 0.0
+vertex v4 128.08, 143.01, 0.0
+edge e2 v3 v4
+vertex v5 128.08, 143.01, 0.0
+vertex v6 127.88, 164.75, 0.0
+edge e3 v5 v6
+vertex v7 127.88, 164.75, 0.0
+vertex v8 116.11, 176.00, 0.0
+edge e4 v7 v8
+vertex v9 116.11, 176.00, 0.0
+vertex v10 136.06, 187.51, 0.0
+edge e5 v9 v10
+wire twire e1 e2 e3 e4 e5
+mkplane tface twire
+revol r1 tface 153.08, 143.01 0.0 1 0 0 360 1
+revol r2 tface 136.06, 68.01, 0.0 0 1 0 360 1
+
+bop r1 r2
+bopcommon result
+
+set square 2990.42
+set nb_v_good 13
+set nb_e_good 23
+set nb_w_good 10
+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 59
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_4 b/tests/bugs/modalg/bug13211_4
new file mode 100755 (executable)
index 0000000..d8c09f7
--- /dev/null
@@ -0,0 +1,44 @@
+puts "TODO ?OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+vertex v1 136.06, 187.51, 0.0
+vertex v2 136.06, 143.01, 0.0
+edge e1 v1 v2
+vertex v3 136.06, 143.01, 0.0
+vertex v4 128.08, 143.01, 0.0
+edge e2 v3 v4
+vertex v5 128.08, 143.01, 0.0
+vertex v6 127.88, 164.75, 0.0
+edge e3 v5 v6
+vertex v7 127.88, 164.75, 0.0
+vertex v8 116.11, 176.00, 0.0
+edge e4 v7 v8
+vertex v9 116.11, 176.00, 0.0
+vertex v10 136.06, 187.51, 0.0
+edge e5 v9 v10
+wire twire e1 e2 e3 e4 e5
+mkplane tface twire
+revol r1 tface 153.08, 143.01 0.0 1 0 0 360 1
+revol r2 tface 136.06, 68.01, 0.0 0 1 0 360 1
+
+bop r1 r2
+bopcut result
+
+set square 17292.5
+set nb_v_good 13
+set nb_e_good 26
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 65
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_5 b/tests/bugs/modalg/bug13211_5
new file mode 100755 (executable)
index 0000000..5d832e4
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+vertex v1 136.06, 187.51, 0.0
+vertex v2 136.06, 143.01, 0.0
+edge e1 v1 v2
+vertex v3 136.06, 143.01, 0.0
+vertex v4 128.08, 143.01, 0.0
+edge e2 v3 v4
+vertex v5 128.08, 143.01, 0.0
+vertex v6 127.88, 164.75, 0.0
+edge e3 v5 v6
+vertex v7 127.88, 164.75, 0.0
+vertex v8 116.11, 176.00, 0.0
+edge e4 v7 v8
+vertex v9 116.11, 176.00, 0.0
+vertex v10 136.06, 187.51, 0.0
+edge e5 v9 v10
+wire twire e1 e2 e3 e4 e5
+mkplane tface twire
+revol r1 tface 153.08, 143.01 0.0 1 0 0 360 1
+revol r2 tface 136.06, 68.01, 0.0 0 1 0 360 1
+
+bop r1 r2
+boptuc result
+
+set square 3006.19
+set nb_v_good 11
+set nb_e_good 18
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 3
+set nb_sol_good 3
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 58
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_6 b/tests/bugs/modalg/bug13211_6
new file mode 100755 (executable)
index 0000000..4eb80cc
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+vertex v1 136.06, 187.51, 0.0
+vertex v2 136.06, 143.01, 0.0
+edge e1 v1 v2
+vertex v3 136.06, 143.01, 0.0
+vertex v4 128.08, 143.01, 0.0
+edge e2 v3 v4
+vertex v5 128.08, 143.01, 0.0
+vertex v6 127.88, 164.75, 0.0
+edge e3 v5 v6
+vertex v7 127.88, 164.75, 0.0
+vertex v8 116.11, 176.00, 0.0
+edge e4 v7 v8
+vertex v9 116.11, 176.00, 0.0
+vertex v10 136.06, 187.51, 0.0
+edge e5 v9 v10
+wire twire e1 e2 e3 e4 e5
+mkplane tface twire
+revol r1 tface 153.08, 143.01 0.0 1 0 0 360 1
+revol r2 tface 136.06, 68.01, 0.0 0 1 0 360 1
+
+bop r1 r2
+bopsection result
+
+set length 228.699
+set nb_v_good_vertex 13
+set nb_e_good_edge 15
+set nb_w_good_wire 0
+set nb_f_good_face 0
+set nb_sh_good_shell 0
+set nb_sol_good_solid 0
+set nb_compsol_good_compsolid 0
+set nb_compound_good_compound 1
+set nb_shape_good_shape 29
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_7 b/tests/bugs/modalg/bug13211_7
new file mode 100755 (executable)
index 0000000..35455ea
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] s1
+restore [locate_data_file OCC13209_s2.brep] s2
+
+bop s1 s2
+bopfuse result
+
+set square 17308.3
+set nb_v_good 13
+set nb_e_good 25
+set nb_w_good 13
+set nb_f_good 12
+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
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_8 b/tests/bugs/modalg/bug13211_8
new file mode 100755 (executable)
index 0000000..775c689
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] s1
+restore [locate_data_file OCC13209_s2.brep] s2
+
+bop s1 s2
+bopcommon result
+
+set square 2990.42
+set nb_v_good 13
+set nb_e_good 23
+set nb_w_good 10
+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 59
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13211_9 b/tests/bugs/modalg/bug13211_9
new file mode 100755 (executable)
index 0000000..6c44ff2
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC13211"
+puts "============"
+puts ""
+#######################################################################
+# Wrong treatment of conical faces in BOP algorithm
+#######################################################################
+
+restore [locate_data_file OCC13209_s1.brep] s1
+restore [locate_data_file OCC13209_s2.brep] s2
+
+bop s1 s2
+bopcut result
+
+set square 17292.5
+set nb_v_good 13
+set nb_e_good 26
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 65
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug13395 b/tests/bugs/modalg/bug13395
new file mode 100755 (executable)
index 0000000..84e659a
--- /dev/null
@@ -0,0 +1,54 @@
+puts "============"
+puts "OCC13395"
+puts "============"
+puts ""
+#######################################################################
+# Pipe is constructed wrongly on a result of revolution
+#######################################################################
+
+# revolution of an edge to obtain half-disk
+line line1 0 0 0 1 0 0
+mkedge edge1 line1 0 10
+revol revol1 edge1 0 0 0 0 1 0 180
+
+# spine for pipe
+line line2 0 0 0 0 1 0
+mkedge edge2 line2 0 10
+wire wire_spine edge2
+
+# invalid pipe
+pipe result wire_spine revol1
+
+set square 828.319
+set good_vertex 6
+set good_edge 9
+set good_wire 5
+set good_face 5
+set explode_v_length  [llength [explode result v] ]
+set explode_e_length  [llength [explode result e] ]
+set explode_w_length  [llength [explode result w] ]
+set explode_f_length  [llength [explode result f] ]
+
+if { ${explode_v_length} != ${good_vertex} } {
+   puts "vertex: Faulty"
+} else {
+   puts "vertex: OK"
+}
+if { ${explode_e_length} != ${good_edge} } {
+   puts "edge: Faulty"
+} else {
+   puts "edge: OK"
+}
+if { ${explode_w_length} != ${good_wire} } {
+   puts "wire: Faulty"
+} else {
+   puts "wire: OK"
+}
+if { ${explode_f_length} != ${good_face} } {
+   puts "face: Faulty"
+} else {
+   puts "face: OK"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug13538 b/tests/bugs/modalg/bug13538
new file mode 100755 (executable)
index 0000000..817c1bf
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC13538"
+puts "============"
+puts ""
+#######################################################################
+# Problem with Boolean operation on Shells
+#######################################################################
+
+box a 100 100 100
+box b 100 100 100
+ttranslate b 0 0 100
+explode a Sh
+explode b Sh
+
+bop a_1 b_1
+bopcommon result
+
+set square 10000
+set nb_v_good 4
+set nb_e_good 4
+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 12
+
+set 2viewer 0
+
diff --git a/tests/bugs/modalg/bug14506 b/tests/bugs/modalg/bug14506
new file mode 100755 (executable)
index 0000000..f368478
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC14506"
+puts "============"
+puts ""
+#######################################################################
+# Wrong section of faces with bspline geometry
+#######################################################################
+
+restore [locate_data_file bug14506_face1.brep] face1
+restore [locate_data_file bug14506_face2.brep] face2
+
+bop face1 face2
+bopsection result
+
+set length 129.639
+set nb_v_good 2
+set nb_e_good 2
+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 5
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug14536 b/tests/bugs/modalg/bug14536
new file mode 100755 (executable)
index 0000000..11e559b
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC14536"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operation Algorithm failed
+#######################################################################
+
+restore [locate_data_file OCC14536-sh1.brep] s1
+restore [locate_data_file OCC14536-sh2.brep] s2
+
+bop s1 s2
+bopfuse result
+
+set square 330318
+set nb_v_good 7
+set nb_e_good 13
+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 35
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug14643 b/tests/bugs/modalg/bug14643
new file mode 100755 (executable)
index 0000000..61159b2
--- /dev/null
@@ -0,0 +1,39 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "============"
+puts "OCC14643"
+puts "============"
+puts ""
+#######################################################################
+# Checkshape command gives wrong result for compound of 66 solids
+#######################################################################
+
+set BugNumber OCC14643
+
+restore [locate_data_file OCC14643.brep] result
+
+set square 8.63143e+07
+set nb_v_good 108
+set nb_e_good 282
+set nb_w_good 239
+set nb_f_good 259
+set nb_sh_good 66
+set nb_sol_good 66
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 1021
+
+puts ""
+puts "Check each solid"
+explode result
+for {set k 1} {$k < 67} {incr k} { 
+  puts ""
+  puts [eval whatis result_$k]
+  puts [eval checkshape result_$k]
+  wait .5
+}
+puts ""
+puts "End check each solid"
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug14777 b/tests/bugs/modalg/bug14777
new file mode 100755 (executable)
index 0000000..06ccd40
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC14777"
+puts "============"
+puts ""
+#######################################################################
+# Boolean Operation Algorithm failed
+#######################################################################
+
+restore [locate_data_file OCC14777-s1.brep] s1
+restore [locate_data_file OCC14777-s2.brep] s2
+
+bop s1 s2
+bopcut result
+
+set square 10653.3
+set nb_v_good 6
+set nb_e_good 9
+set nb_w_good 5
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 28
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug14780 b/tests/bugs/modalg/bug14780
new file mode 100755 (executable)
index 0000000..7e71e6a
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC14780"
+puts "============"
+puts ""
+######################################################
+# Boolean operations (section, fuse, common, cut) give incorrect result
+######################################################
+
+set BugNumber OCC14780
+
+restore [locate_data_file OCC14780_part1.brep] s1
+restore [locate_data_file OCC14780_part2.brep] s2
+
+bop s1 s2
+bopsection result
+
+regexp {nb alone Vertices +: +([-0-9.+eE]+)} [checksection result] full Vertices
+
+set good_Vertices 0
+if { ${Vertices} != ${good_Vertices} } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set length 171.289
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug15036 b/tests/bugs/modalg/bug15036
new file mode 100755 (executable)
index 0000000..ee06151
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC15936"
+puts "============"
+puts ""
+#######################################################################
+# Wrong shape build by revolution algorithm
+#######################################################################
+
+vertex v1 0 725 20
+vertex v2 0 709 20
+vertex v3 0 709 230
+vertex v4 0 645 230
+vertex v5 0 645 320
+vertex v6 0 805 320
+vertex v7 0 805 230
+vertex v8 0 741 230
+vertex v9 0 741 20
+edge e12 v1 v2
+edge e23 v2 v3
+edge e34 v3 v4
+edge e45 v4 v5
+edge e56 v5 v6
+edge e67 v6 v7 
+edge e78 v7 v8
+edge e89 v8 v9
+edge e91 v9 v1
+wire w e12 e23 e34 e45 e56 e67 e78 e89 e91
+mkplane fr w 1
+
+revol result fr 0.001428571428572667 640.5285714285715 20 -1.691188905560395E-05 0.9999999998569939 0 360
+
+set square 1.03597e+06
+set nb_v_good 9
+set nb_e_good 14
+set nb_w_good 13
+set nb_f_good 9
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 47
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug15836 b/tests/bugs/modalg/bug15836
new file mode 100755 (executable)
index 0000000..61980d9
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC15836"
+puts "============"
+puts ""
+#######################################################################
+# Wrong visualization of filleted shape on IRIX32 platform
+#######################################################################
+
+restore [locate_data_file OCC15836.brep] f
+explode f e
+
+fillet result f 10 f_8 15 f_9 20 f_11 25 f_17 30 f_21 35 f_29
+
+set square 42816.6
+set nb_v_good 31
+set nb_e_good 50
+set nb_w_good 21
+set nb_f_good 21
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 126
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug15850 b/tests/bugs/modalg/bug15850
new file mode 100755 (executable)
index 0000000..dc41ca7
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC15850"
+puts "============"
+puts ""
+#######################################################################
+# Regression in BOP - wrong results for simple shapes with Bspline geometry
+#######################################################################
+
+restore [locate_data_file OCC15850_bb.brep] bb
+restore [locate_data_file OCC15850_bc.brep] bc
+
+bop bb bc
+bopcut result
+
+set square 732.453
+set nb_v_good 12
+set nb_e_good 17
+set nb_w_good 9
+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 48
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug15850_1 b/tests/bugs/modalg/bug15850_1
new file mode 100755 (executable)
index 0000000..6816d4c
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC15850"
+puts "============"
+puts ""
+#######################################################################
+# Regression in BOP - wrong results for simple shapes with Bspline geometry
+#######################################################################
+
+restore [locate_data_file OCC15850_bb.brep] bb
+restore [locate_data_file OCC15850_bc.brep] bc
+
+bop bb bc
+boptuc result
+
+set square 301.996
+set nb_v_good 6
+set nb_e_good 8
+set nb_w_good 6
+set nb_f_good 6
+set nb_sh_good 2
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 31
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug15850_2 b/tests/bugs/modalg/bug15850_2
new file mode 100755 (executable)
index 0000000..42a2e28
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC15850"
+puts "============"
+puts ""
+#######################################################################
+# Regression in BOP - wrong results for simple shapes with Bspline geometry
+#######################################################################
+
+restore [locate_data_file OCC15850_bb.brep] bb
+restore [locate_data_file OCC15850_bc.brep] bc
+
+bop bb bc
+bopcommon result
+
+set square 245.55
+set nb_v_good 4
+set nb_e_good 5
+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 18
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug15850_3 b/tests/bugs/modalg/bug15850_3
new file mode 100755 (executable)
index 0000000..869ab3e
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC15850"
+puts "============"
+puts ""
+#######################################################################
+# Regression in BOP - wrong results for simple shapes with Bspline geometry
+#######################################################################
+
+restore [locate_data_file OCC15850_bb.brep] bb
+restore [locate_data_file OCC15850_bc.brep] bc
+
+bop bb bc
+bopfuse result
+
+set square 788.9
+set nb_v_good 14
+set nb_e_good 20
+set nb_w_good 12
+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 59
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug15850_4 b/tests/bugs/modalg/bug15850_4
new file mode 100755 (executable)
index 0000000..9a71806
--- /dev/null
@@ -0,0 +1,38 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC15850"
+puts "============"
+puts ""
+#######################################################################
+# Regression in BOP - wrong results for simple shapes with Bspline geometry
+#######################################################################
+
+set BugNumber OCC15850
+
+restore [locate_data_file OCC15850_bb.brep] bb
+restore [locate_data_file OCC15850_bc.brep] bc
+
+bop bb bc
+bopsection result
+
+set length 37.6991
+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
+
+regexp {nb alone Vertices +: +([-0-9.+eE]+)} [checksection result] full Vertices
+set good_Vertices 0
+if { ${Vertices} != ${good_Vertices} } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug15943 b/tests/bugs/modalg/bug15943
new file mode 100755 (executable)
index 0000000..11aee30
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC15943"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of boolen fuse
+#######################################################################
+
+restore [locate_data_file OCC15943_p1.brep] b1
+restore [locate_data_file OCC15943_p2.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 266944
+set nb_v_good 12
+set nb_e_good 20
+set nb_w_good 10
+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/bug15968_1 b/tests/bugs/modalg/bug15968_1
new file mode 100755 (executable)
index 0000000..aafb893
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC15968"
+puts "============"
+puts ""
+#######################################################################
+# Result of checkshape command depends on order of subshapes in a shape 
+#######################################################################
+
+restore [locate_data_file OCC15968.brep] s
+
+explode s f
+
+# shell 1
+shape s1 sh
+add s_2 s1
+add s_1 s1
+renamevar s1 result
+
+set square 164
+set nb_v_good 10
+set nb_e_good 11
+set nb_w_good 3
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 27
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug15968_2 b/tests/bugs/modalg/bug15968_2
new file mode 100755 (executable)
index 0000000..78c3700
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC15968"
+puts "============"
+puts ""
+#######################################################################
+# Result of checkshape command depends on order of subshapes in a shape 
+#######################################################################
+
+restore [locate_data_file OCC15968.brep] s
+
+explode s f
+
+# shell 2
+shape s2 sh
+add s_1 s2
+add s_2 s2
+renamevar s2 result
+
+set square 164
+set nb_v_good 10
+set nb_e_good 11
+set nb_w_good 3
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 27
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug16517_1 b/tests/bugs/modalg/bug16517_1
new file mode 100755 (executable)
index 0000000..bb2ddb0
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC16517"
+puts "============"
+puts ""
+#######################################################################
+# Cylindrical projection is wrong
+#######################################################################
+
+set BugNumber OCC16517
+
+restore [locate_data_file OCC16517_c.brep] c
+restore [locate_data_file OCC16517_s.brep] s
+
+set Result_List [prj p c s 0 0 1]
+set Result_Numbers [llength ${Result_List}]
+set mistake 0
+if { ${Result_Numbers} != 2 } {
+  puts "Faulty ${BugNumber} : projection numbers are wrong"
+  set mistake 1
+} else {
+  puts "First projection ..."
+  renamevar p_1 result
+
+  set status 0
+  set length 110.167
+  set nb_v_good 1
+  set nb_e_good 1
+  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 3
+}
+
+if { ${mistake} != 0 } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug16517_2 b/tests/bugs/modalg/bug16517_2
new file mode 100755 (executable)
index 0000000..6a1e214
--- /dev/null
@@ -0,0 +1,46 @@
+puts "============"
+puts "OCC16517"
+puts "============"
+puts ""
+#######################################################################
+# Cylindrical projection is wrong
+#######################################################################
+
+set BugNumber OCC16517
+
+restore [locate_data_file OCC16517_c.brep] c
+restore [locate_data_file OCC16517_s.brep] s
+
+set Result_List [prj p c s 0 0 1]
+set Result_Numbers [llength ${Result_List}]
+set mistake 0
+if { ${Result_Numbers} != 2 } {
+  puts "Faulty ${BugNumber} : projection numbers are wrong"
+  set mistake 1
+} else {
+  puts "Second projection ..."
+  renamevar p_2 result
+  set status 0
+
+  set length 110.167
+  set nb_v_good 1
+  set nb_e_good 1
+  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 3
+}
+
+# Resume
+puts ""
+if { ${mistake} != 0 } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug16667_1 b/tests/bugs/modalg/bug16667_1
new file mode 100755 (executable)
index 0000000..81d8c63
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC16667"
+puts "============"
+puts ""
+#######################################################################
+# 2D Offset algorithm fails
+#######################################################################
+
+restore [locate_data_file OCC16667-face.brep] a
+
+mkoffset resoffset a 1 20
+renamevar resoffset_1 result
+
+set length 1542.3
+set nb_v_good 7
+set nb_e_good 7
+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 15
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug16667_2 b/tests/bugs/modalg/bug16667_2
new file mode 100755 (executable)
index 0000000..8871038
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC16667"
+puts "============"
+puts ""
+#######################################################################
+# 2D Offset algorithm fails
+#######################################################################
+
+restore [locate_data_file OCC16667-face.brep] a
+
+mkoffset resoffset a 1 -20
+renamevar resoffset_1 result
+
+set length 1188.62
+set nb_v_good 5
+set nb_e_good 5
+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 11
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug16667_3 b/tests/bugs/modalg/bug16667_3
new file mode 100755 (executable)
index 0000000..a62593e
--- /dev/null
@@ -0,0 +1,27 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC16667"
+puts "============"
+puts ""
+#######################################################################
+# 2D Offset algorithm fails
+#######################################################################
+
+restore [locate_data_file OCC16667-wire.brep] a
+
+mkoffset resoffset a 1 20
+renamevar resoffset_1 result
+
+set length 1451.49
+set nb_v_good 8
+set nb_e_good 8
+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 17
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug16667_4 b/tests/bugs/modalg/bug16667_4
new file mode 100755 (executable)
index 0000000..8fd515e
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC16667"
+puts "============"
+puts ""
+#######################################################################
+# 2D Offset algorithm fails
+#######################################################################
+
+restore [locate_data_file OCC16667-wire.brep] a
+
+mkoffset resoffset a 1 -20
+renamevar resoffset_1 result
+
+set length 1200.16
+set nb_v_good 8
+set nb_e_good 8
+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 17
+
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug16781 b/tests/bugs/modalg/bug16781
new file mode 100755 (executable)
index 0000000..68c7444
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC16781"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of Cut operation.
+#######################################################################
+
+restore [locate_data_file OCC16781-wing_solid.brep] s1
+restore [locate_data_file OCC16781-extr.brep] s2
+
+bop s1 s2
+bopcut result
+
+set square 3.92094e+07
+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/bug17194_1 b/tests/bugs/modalg/bug17194_1
new file mode 100755 (executable)
index 0000000..149c5d3
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC17194"
+puts "============"
+puts ""
+#######################################################################
+# Incorrect section of a face got by extrusion of an arc of circle
+#######################################################################
+
+set BugNumber OCC17194
+
+circle f 0 0 0 0 0 1 1 0 0 20
+mkedge f f -pi/2 pi/2
+prism f f 50 0 30
+plane pl 10 0 0 1 0 4
+mkface pl pl
+bsection result f pl
+
+set nb_v_good 4
+set nb_e_good 2
+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 7
+
+set length 15.8064
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug17194_2 b/tests/bugs/modalg/bug17194_2
new file mode 100755 (executable)
index 0000000..618e031
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC17194"
+puts "============"
+puts ""
+#######################################################################
+# Incorrect section of a face got by extrusion of an arc of circle
+#######################################################################
+
+set BugNumber OCC17194
+
+circle f 0 0 0 0 0 1 1 0 0 20
+mkedge f f -pi/2 pi/2
+prism f f 50 0 30
+plane pl 10 0 10 1 0 4
+mkface pl pl
+bsection result f pl
+
+set nb_v_good 2
+set nb_e_good 1
+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 4
+
+set length 54.6122
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug17357_1 b/tests/bugs/modalg/bug17357_1
new file mode 100755 (executable)
index 0000000..1824e67
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC17357"
+puts "============"
+puts ""
+#######################################################################
+# Any boolean operation is impossible between attached shapes
+#######################################################################
+
+restore [locate_data_file OCC17357-1.brep] b1
+restore [locate_data_file OCC17357-2.brep] b2
+
+bop b1 b2
+bopcommon result
+
+set square 1.18671
+set nb_v_good 10
+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 1
+set nb_shape_good 47
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug17357_2 b/tests/bugs/modalg/bug17357_2
new file mode 100755 (executable)
index 0000000..7d49291
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC17357"
+puts "============"
+puts ""
+#######################################################################
+# Any boolean operation is impossible between attached shapes
+#######################################################################
+
+restore [locate_data_file OCC17357-1.brep] b1
+restore [locate_data_file OCC17357-2.brep] b2
+
+bop b1 b2
+bopfuse result
+
+set square 241.111
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 10
+set nb_sh_goodl 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 65
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug17357_3 b/tests/bugs/modalg/bug17357_3
new file mode 100755 (executable)
index 0000000..3e7b430
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC17357"
+puts "============"
+puts ""
+#######################################################################
+# Any boolean operation is impossible between attached shapes
+#######################################################################
+
+restore [locate_data_file OCC17357-1.brep] b1
+restore [locate_data_file OCC17357-2.brep] b2
+
+bop b1 b2
+bopcut result
+
+set square 241.111
+set nb_v_good 18
+set nb_e_good 30
+set nb_w_good 14
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 77
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug17357_4 b/tests/bugs/modalg/bug17357_4
new file mode 100755 (executable)
index 0000000..2083ce5
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC17357"
+puts "============"
+puts ""
+#######################################################################
+# Any boolean operation is impossible between attached shapes
+#######################################################################
+
+restore [locate_data_file OCC17357-1.brep] b1
+restore [locate_data_file OCC17357-2.brep] b2
+
+bop b1 b2
+boptuc result
+
+set square 1.18671
+set nb_v_good 8
+set nb_e_good 12
+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 35
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug17357_5 b/tests/bugs/modalg/bug17357_5
new file mode 100755 (executable)
index 0000000..179c395
--- /dev/null
@@ -0,0 +1,18 @@
+puts "============"
+puts "OCC17357"
+puts "============"
+puts ""
+#######################################################################
+# Any boolean operation is impossible between attached shapes
+#######################################################################
+
+restore [locate_data_file OCC17357-1.brep] b1
+restore [locate_data_file OCC17357-2.brep] b2
+
+bop b1 b2
+bopsection result
+
+set length 3.84991
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug18186 b/tests/bugs/modalg/bug18186
new file mode 100755 (executable)
index 0000000..99998d6
--- /dev/null
@@ -0,0 +1,29 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC18186"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation algo fails
+#######################################################################
+
+restore [locate_data_file OCC18186_r3.brep] bb
+restore [locate_data_file OCC18186_Tool2.brep] bc
+
+bop bb bc
+bopcut result
+
+set square 308374
+set nb_v_good 43
+set nb_e_good 68
+set nb_w_good 27
+set nb_f_good 27
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 168
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug19071 b/tests/bugs/modalg/bug19071
new file mode 100755 (executable)
index 0000000..32f3ed0
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC19071"
+puts "============"
+puts ""
+#######################################################################
+# The MakeFuse or the MakePartition function crash together on 2 torus
+#######################################################################
+
+set BugNumber OCC19071
+
+puts "Load first shape ..."
+restore [locate_data_file OCC19071_Rotation_2.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC19071_Torus_2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 177462
+
+set nb_v_good 6
+set nb_e_good 16
+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 37
+
+
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug19793_2 b/tests/bugs/modalg/bug19793_2
new file mode 100755 (executable)
index 0000000..6ec9338
--- /dev/null
@@ -0,0 +1,41 @@
+puts "TODO OCC11111 ALL: TEST INCOMPLETE"
+
+puts "============"
+puts "OCC19793"
+puts "============"
+puts ""
+#######################################################################
+# Fuse problem of symetrical shapes. Appendix for NPAL19789
+#######################################################################
+
+cpulimit 100
+#cpulimit 4500
+set BugNumber OCC19793
+
+puts "Load first shape ..."
+restore [locate_data_file bug19793_new_shape.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file bug19793_shape.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 17730.1
+
+set nb_e_good 1190
+set nb_v_good 68
+set nb_e_good 70
+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 139
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug19811 b/tests/bugs/modalg/bug19811
new file mode 100755 (executable)
index 0000000..5b4ef22
--- /dev/null
@@ -0,0 +1,35 @@
+puts "============"
+puts "OCC19811"
+puts "============"
+puts ""
+#######################################################################
+# Scaling problem. Appendix for NPAL19806 
+#######################################################################
+
+set BugNumber OCC19811
+
+puts "Load shape ..."
+restore [locate_data_file bug19811_VanneMP_supports_tiges_V3.brep] result
+
+puts "Scaling operation ..."
+if [catch { tscale result 0 0 0 0.5 } catch_result] {
+   puts "Faulty ${BugNumber} : Scaling is wrong"
+}
+
+set square 1.6949e+06
+
+set nb_v_good 173
+set nb_e_good 285
+set nb_w_good 113
+set nb_f_good 113
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 686
+
+vinit
+vdisplay result
+vfit
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug20222 b/tests/bugs/modalg/bug20222
new file mode 100755 (executable)
index 0000000..4c8dcaa
--- /dev/null
@@ -0,0 +1,19 @@
+puts "============"
+puts "OCC20222"
+puts "============"
+puts ""
+#######################################################################
+# Chamfer operation produces incorrect shape (PACE-01-006)
+#######################################################################
+
+set BugNumber OCC20222
+
+restore [locate_data_file OCC20222.brep] s 
+explode s f
+explode s_10 e
+chamf result s s_10_3 s_10 S 50
+
+checkshape result
+
+set square 712126
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_1 b/tests/bugs/modalg/bug20285_1
new file mode 100755 (executable)
index 0000000..259b622
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_5 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 750.952
+
+set nb_v_good 8
+set nb_e_good 7
+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 16
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_10 b/tests/bugs/modalg/bug20285_10
new file mode 100755 (executable)
index 0000000..e8baf09
--- /dev/null
@@ -0,0 +1,41 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_6 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 37856.9
+
+set nb_v_good 15
+set nb_e_good 22
+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 58
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_11 b/tests/bugs/modalg/bug20285_11
new file mode 100755 (executable)
index 0000000..c506d71
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_7 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 446.679
+
+set nb_v_good 8
+set nb_e_good 8
+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 17
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_12 b/tests/bugs/modalg/bug20285_12
new file mode 100755 (executable)
index 0000000..985760a
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_7 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 17028.5
+
+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 1
+set nb_shape_good 49
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_13 b/tests/bugs/modalg/bug20285_13
new file mode 100755 (executable)
index 0000000..ff1ac55
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_7 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 160323
+
+set nb_v_good 26
+set nb_e_good 39
+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 98
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_14 b/tests/bugs/modalg/bug20285_14
new file mode 100755 (executable)
index 0000000..ccf29dc
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_7 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 135189
+
+set nb_v_good 20
+set nb_e_good 30
+set nb_w_good 12
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 77
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_15 b/tests/bugs/modalg/bug20285_15
new file mode 100755 (executable)
index 0000000..b05dfff
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_7 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 42162.7
+
+set nb_v_good 18
+set nb_e_good 27
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 70
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_2 b/tests/bugs/modalg/bug20285_2
new file mode 100755 (executable)
index 0000000..23b99f7
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_5 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 17577
+
+set nb_v_good 8
+set nb_e_good 12
+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 35
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_3 b/tests/bugs/modalg/bug20285_3
new file mode 100755 (executable)
index 0000000..9c6c908
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_5 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 113140
+
+set nb_v_good 18
+set nb_e_good 28
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 71
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_4 b/tests/bugs/modalg/bug20285_4
new file mode 100755 (executable)
index 0000000..e1736b5
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_5 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 92859.7
+
+set nb_v_good 13
+set nb_e_good 19
+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 1
+set nb_shape_good 51
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_5 b/tests/bugs/modalg/bug20285_5
new file mode 100755 (executable)
index 0000000..578a724
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_5 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 37856.9
+
+set nb_v_good 15
+set nb_e_good 22
+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 58
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_6 b/tests/bugs/modalg/bug20285_6
new file mode 100755 (executable)
index 0000000..4c0c5e3
--- /dev/null
@@ -0,0 +1,42 @@
+puts "TODO OCC11111 ALL: Error : The length of result shape is"
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_6 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 750.952
+
+set nb_v_good 8
+set nb_e_good 7
+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 16
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_7 b/tests/bugs/modalg/bug20285_7
new file mode 100755 (executable)
index 0000000..7b383b0
--- /dev/null
@@ -0,0 +1,42 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_6 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 17577
+
+set nb_v_good 8
+set nb_e_good 12
+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 35
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_8 b/tests/bugs/modalg/bug20285_8
new file mode 100755 (executable)
index 0000000..36825b6
--- /dev/null
@@ -0,0 +1,42 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_6 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 113140
+
+set nb_v_good 18
+set nb_e_good 28
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 71
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20285_9 b/tests/bugs/modalg/bug20285_9
new file mode 100755 (executable)
index 0000000..6c71942
--- /dev/null
@@ -0,0 +1,42 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC20285"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE Arithmetic exception on MakeCut Appendix for IPAL20277
+#######################################################################
+
+set BugNumber OCC20285
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20285-main.brep] a1 
+explode a1
+renamevar a1_6 b1
+
+puts "Load second shape ..."
+restore [locate_data_file OCC20285-tool.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 92859.7
+
+set nb_v_good 13
+set nb_e_good 19
+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 1
+set nb_shape_good 51
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20297_1 b/tests/bugs/modalg/bug20297_1
new file mode 100755 (executable)
index 0000000..36974e9
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC20297"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operations (for ex. fuse) fail for given shapes
+#######################################################################
+
+set BugNumber OCC20297
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20297_1.brep] a1 
+explode a1
+renamevar a1_1 b1
+puts "Load second shape ..."
+restore [locate_data_file OCC20297_2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 389.898
+
+set nb_v_good 64
+set nb_e_good 64
+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 129
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20297_2 b/tests/bugs/modalg/bug20297_2
new file mode 100755 (executable)
index 0000000..cd0ef74
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC20297"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operations (for ex. fuse) fail for given shapes
+#######################################################################
+#######################################################################
+
+set BugNumber OCC20297
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20297_1.brep] a1 
+explode a1
+renamevar a1_1 b1
+puts "Load second shape ..."
+restore [locate_data_file OCC20297_2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 31648.3
+
+set nb_v_good 129
+set nb_e_good 194
+set nb_w_good 71
+set nb_f_good 69
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 466
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20297_3 b/tests/bugs/modalg/bug20297_3
new file mode 100755 (executable)
index 0000000..b672095
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC20297"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operations (for ex. fuse) fail for given shapes
+#######################################################################
+#######################################################################
+
+set BugNumber OCC20297
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20297_1.brep] a1 
+explode a1
+renamevar a1_1 b1
+puts "Load second shape ..."
+restore [locate_data_file OCC20297_2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 46473.9
+
+set nb_v_good 140
+set nb_e_good 209
+set nb_w_good 83
+set nb_f_good 77
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 512
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20297_4 b/tests/bugs/modalg/bug20297_4
new file mode 100755 (executable)
index 0000000..ebda37c
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC20297"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operations (for ex. fuse) fail for given shapes
+#######################################################################
+#######################################################################
+
+set BugNumber OCC20297
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20297_1.brep] a1 
+explode a1
+renamevar a1_1 b1
+puts "Load second shape ..."
+restore [locate_data_file OCC20297_2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 69719.6
+
+set nb_v_good 141
+set nb_e_good 211
+set nb_w_good 86
+set nb_f_good 78
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 519
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20297_5 b/tests/bugs/modalg/bug20297_5
new file mode 100755 (executable)
index 0000000..bd7add7
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC20297"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operations (for ex. fuse) fail for given shapes
+#######################################################################
+#######################################################################
+
+set BugNumber OCC20297
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20297_1.brep] a1 
+explode a1
+renamevar a1_1 b1
+puts "Load second shape ..."
+restore [locate_data_file OCC20297_2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 8402.56
+
+set nb_v_good 128
+set nb_e_good 192
+set nb_w_good 68
+set nb_f_good 68
+set nb_sh_good 2
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 461
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20413 b/tests/bugs/modalg/bug20413
new file mode 100755 (executable)
index 0000000..862df55
--- /dev/null
@@ -0,0 +1,36 @@
+puts "============"
+puts "OCC20413"
+puts "============"
+puts ""
+#######################################################################
+# Section is wrong for given shapes
+#######################################################################
+
+set BugNumber OCC20413
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20413_a1.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC20413_a2.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 233.024
+
+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/bug20465 b/tests/bugs/modalg/bug20465
new file mode 100755 (executable)
index 0000000..38c21ce
--- /dev/null
@@ -0,0 +1,31 @@
+puts "========================"
+puts "OCC20465"
+puts "========================"
+puts ""
+#######################################################################
+# Wrong checkshape results for shells
+#######################################################################
+
+set BugNumber OCC20465
+
+restore [locate_data_file OCC20465.brep] r 
+
+checkshape r
+explode r f
+compound r_1 r_2 r_3 r_4 r_5 r_6 r_7 r_8 r_9 r_10 r_11 result
+
+set square 900
+
+set nb_v_good 23
+set nb_e_good 33
+set nb_w_good 13
+set nb_f_good 11
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 81
+
+set square 900
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug20785 b/tests/bugs/modalg/bug20785
new file mode 100755 (executable)
index 0000000..6a7ea86
--- /dev/null
@@ -0,0 +1,51 @@
+puts "========"
+puts "OCC20785"
+puts "========"
+puts ""
+######################################################
+# Surfaces are empty after shading
+######################################################
+
+set BugNumber OCC20785
+
+restore [locate_data_file OCC20785.brep] result
+
+set square 322688
+
+set nb_v_good 119
+set nb_e_good 199
+set nb_w_good 96
+set nb_f_good 87
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 503
+
+vinit
+vdisplay res
+vsetdispmode 1
+vfit
+
+set only_screen 0
+
+set scale    2.7840527693872859
+set center_X 3.7559505017270567e-07
+set center_Y -71.035163389154491
+set proj_X   -0.89892524480819702
+set proj_Y   -0.37323716282844543
+set proj_Z   -0.22940616309642792
+set up_X     -0.41990724205970764
+set up_Y     0.58468854427337646
+set up_Z     0.69413024187088013
+set at_X     -74.980735778808594
+set at_Y     22.785961151123047
+set at_Z     -49.215263366699219
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+set only_screen 0
+
diff --git a/tests/bugs/modalg/bug20793 b/tests/bugs/modalg/bug20793
new file mode 100755 (executable)
index 0000000..0d24445
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "OCC20793"
+puts "============"
+puts ""
+#######################################################################
+# BRepOffsetAPI_MakeOffset produces incorrect result
+#######################################################################
+
+set BugNumber OCC20793
+
+puts "Load shape ..."
+restore [locate_data_file OCC20793.brep] a 
+
+if [catch { mkoffset resoffset a 1 10 } ] {
+  puts "Faulty ${BugNumber} : mkoffset is wrong"
+} else {
+  renamevar resoffset_1 result
+
+set length 671.746
+
+set nb_v_good 4
+set nb_e_good 4
+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 9
+
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20807_1 b/tests/bugs/modalg/bug20807_1
new file mode 100755 (executable)
index 0000000..99b16c7
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC20807"
+puts "============"
+puts ""
+#######################################################################
+# Construction of pipe among a helix containing several convolutions fails
+#######################################################################
+
+set BugNumber OCC20807
+
+restore [locate_data_file bug20807_helix_10.brep] spine 
+wire spine spine
+
+restore [locate_data_file bug20807_profile.brep] profile 
+
+mksweep spine
+setsweep -CN 0 0 1
+addsweep profile
+
+buildsweep result
+
+set square 254837
+
+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/bug20807_2 b/tests/bugs/modalg/bug20807_2
new file mode 100755 (executable)
index 0000000..8eb2764
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "OCC20807"
+puts "============"
+puts ""
+#######################################################################
+# Construction of pipe among a helix containing several convolutions fails
+#######################################################################
+
+set BugNumber OCC20807
+
+restore [locate_data_file bug20807_coil.brep] spine 
+explode spine
+
+restore [locate_data_file bug20807_circ.brep] profile 
+
+mksweep spine_1
+addsweep profile
+
+buildsweep result
+
+set square 44761.1
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+set 2dviewer 1
diff --git a/tests/bugs/modalg/bug20807_3 b/tests/bugs/modalg/bug20807_3
new file mode 100755 (executable)
index 0000000..711a6a7
--- /dev/null
@@ -0,0 +1,32 @@
+puts "============"
+puts "OCC20807"
+puts "============"
+puts ""
+#######################################################################
+# Construction of pipe among a helix containing several convolutions fails
+#######################################################################
+
+set BugNumber OCC20807
+
+restore [locate_data_file bug20807_coil2.brep] spine 
+
+restore [locate_data_file bug20807_circ2.brep] profile 
+
+mksweep spine
+addsweep profile
+
+buildsweep result
+
+set square 2933.11
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+set 2dviewer 1
diff --git a/tests/bugs/modalg/bug20807_4 b/tests/bugs/modalg/bug20807_4
new file mode 100755 (executable)
index 0000000..6825b32
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC20807"
+puts "============"
+puts ""
+#######################################################################
+# Construction of pipe among a helix containing several convolutions fails
+#######################################################################
+
+set BugNumber OCC20807
+
+restore [locate_data_file bug20807_spiral.brep] sp 
+explode sp
+wire spine sp_1
+
+restore [locate_data_file bug20807_circ3.brep] profile 
+
+mksweep spine
+addsweep profile
+
+buildsweep result
+
+set square 4.78336e+06
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+set 2dviewer 1
diff --git a/tests/bugs/modalg/bug20964_1 b/tests/bugs/modalg/bug20964_1
new file mode 100755 (executable)
index 0000000..be0dba6
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC20964"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of cut operation for given shapes
+#######################################################################
+
+set BugNumber OCC20964
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20964_revsolid.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC20964_sphere.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 323.636
+
+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/bug20964_2 b/tests/bugs/modalg/bug20964_2
new file mode 100755 (executable)
index 0000000..389b42d
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC20964"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of cut operation for given shapes
+#######################################################################
+
+set BugNumber OCC20964
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20964_revsolid.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC20964_sphere.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 5164.66
+
+set nb_v_good 8
+set nb_e_good 12
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 34
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20964_3 b/tests/bugs/modalg/bug20964_3
new file mode 100755 (executable)
index 0000000..bb6d442
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC20964"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of cut operation for given shapes
+#######################################################################
+
+set BugNumber OCC20964
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20964_revsolid.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC20964_sphere.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 828829
+
+set nb_v_good 20
+set nb_e_good 32
+set nb_w_good 18
+set nb_f_good 16
+set nb_sh_good 3
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 91
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20964_4 b/tests/bugs/modalg/bug20964_4
new file mode 100755 (executable)
index 0000000..3c2f2d8
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC20964"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of cut operation for given shapes
+#######################################################################
+
+set BugNumber OCC20964
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20964_revsolid.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC20964_sphere.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 821892
+
+set nb_v_good 22
+set nb_e_good 35
+set nb_w_good 17
+set nb_f_good 14
+set nb_sh_good 2
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 92
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug20964_5 b/tests/bugs/modalg/bug20964_5
new file mode 100755 (executable)
index 0000000..045919f
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC20964"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of cut operation for given shapes
+#######################################################################
+
+set BugNumber OCC20964
+
+puts "Load first shape ..."
+restore [locate_data_file OCC20964_revsolid.brep] b1 
+puts "Load second shape ..."
+restore [locate_data_file OCC20964_sphere.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 12101.2
+
+set nb_v_good 6
+set nb_e_good 9
+set nb_w_good 7
+set nb_f_good 7
+set nb_sh_good 2
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 34
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug21255 b/tests/bugs/modalg/bug21255
new file mode 100755 (executable)
index 0000000..9050872
--- /dev/null
@@ -0,0 +1,56 @@
+puts "============"
+puts "OCC21255"
+puts "============"
+puts ""
+#######################################################################
+# Some problems with 3D chamfer construction
+#######################################################################
+
+set BugNumber OCC21255
+
+restore [locate_data_file OCC21255-1.brep] ss 
+explode ss F
+explode ss_7 E
+
+vinit
+if [catch { chamf result ss ss_7_2 ss_7 5. 5. } ] {
+  puts "Faulty ${BugNumber} : chamf is wrong"
+} else {
+set square 45382.5
+
+set nb_v_good 15
+set nb_e_good 22
+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 58
+
+  set 3dviewer 0
+  vdisplay result
+  vsetdispmode 1
+  vfit
+
+  set scale    5.8955238204183011
+  set center_X -43.928617104386774
+  set center_Y 295.47887425975171
+  set proj_X   0.62061613798141479
+  set proj_Y   -0.6891753077507019
+  set proj_Z   -0.37399500608444214
+  set up_X     -0.12894462049007416
+  set up_Y     -0.56017255783081055
+  set up_Z     0.81827831268310547
+  set at_X     15.248310089111328
+  set at_Y     165.90042114257812
+  set at_Z     225.19309997558594
+
+  vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+}
+
+set only_screen 1
diff --git a/tests/bugs/modalg/bug21261_1 b/tests/bugs/modalg/bug21261_1
new file mode 100755 (executable)
index 0000000..2b8bff9
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1.brep] s 
+
+thickshell result s 5
+
+set square 36766
+
+set nb_v_good 4
+set nb_e_good 10
+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 0
+set nb_shape_good 24
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.8136266443689317
+set center_X -34.878384652992025
+set center_Y 41.518039353084561
+set proj_X   0.5689244270324707
+set proj_Y   -0.54117375612258911
+set proj_Z   -0.61923813819885254
+set up_X     0.48309960961341858
+set up_Y     -0.38943690061569214
+set up_Z     0.78418976068496704
+set at_X     -38.500396728515625
+set at_Y     34.677536010742188
+set at_Z     -7.9150166511535645
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_10 b/tests/bugs/modalg/bug21261_10
new file mode 100755 (executable)
index 0000000..a38188c
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-5.brep] s 
+
+thickshell result s -5
+
+set square 29923.6
+
+set nb_v_good 4
+set nb_e_good 10
+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 0
+set nb_shape_good 24
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    6.3723487126883533
+set center_X -4.2632564145606011e-14
+set center_Y -22.430308400362279
+set proj_X   0.57735025882720947
+set proj_Y   -0.57735025882720947
+set proj_Z   0.57735025882720947
+set up_X     -0.40824827551841736
+set up_Y     0.40824827551841736
+set up_Z     0.81649655103683472
+set at_X     0
+set at_Y     0
+set at_Z     0
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_11 b/tests/bugs/modalg/bug21261_11
new file mode 100755 (executable)
index 0000000..7072c3a
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-cone1.brep] s 
+
+thickshell result s -5
+
+set square 11054.2
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    17.084273613995954
+set center_X 210.44987026890158
+set center_Y -5.2570485620847549
+set proj_X   0.98952245712280273
+set proj_Y   -0.12535266578197479
+set proj_Z   0.071637466549873352
+set up_X     -0.016377445310354233
+set up_Y     0.39552098512649536
+set up_Z     0.91831082105636597
+set at_X     121.38485717773438
+set at_Y     -46.730243682861328
+set at_Z     83.376449584960938
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_12 b/tests/bugs/modalg/bug21261_12
new file mode 100755 (executable)
index 0000000..a1d8306
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-revarc.brep] s 
+
+thickshell result s -5
+
+set square 39635.4
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_13 b/tests/bugs/modalg/bug21261_13
new file mode 100755 (executable)
index 0000000..d14d0d2
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-revbzc.brep] s 
+
+thickshell result s -5
+
+set square 73788.5
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_14 b/tests/bugs/modalg/bug21261_14
new file mode 100755 (executable)
index 0000000..1b00b6f
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-2137_tsrf.brep] s 
+
+thickshell result s -5
+
+set square 27432.4
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_15 b/tests/bugs/modalg/bug21261_15
new file mode 100755 (executable)
index 0000000..ecd6539
--- /dev/null
@@ -0,0 +1,39 @@
+puts "TODO OCC11111 ALL: Exception"
+puts "TODO OCC11111 ALL: An exception was caught"
+puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-2137_bss1_crash_C0.brep] s 
+
+thickshell result s -5
+
+set square 27432.4
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_16 b/tests/bugs/modalg/bug21261_16
new file mode 100755 (executable)
index 0000000..813fa34
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1988_ellipsepipesrf_1.brep] s 
+
+thickshell result s -5
+
+set square 17366.2
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_17 b/tests/bugs/modalg/bug21261_17
new file mode 100755 (executable)
index 0000000..3e960bf
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1988_bscpipesrf_2.brep] s 
+
+thickshell result s -5
+
+set square 10250
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_18 b/tests/bugs/modalg/bug21261_18
new file mode 100755 (executable)
index 0000000..380bb63
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1.brep] s 
+
+thickshell result s -5
+
+set square 30288.5
+
+set nb_v_good 4
+set nb_e_good 10
+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 0
+set nb_shape_good 24
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_19 b/tests/bugs/modalg/bug21261_19
new file mode 100755 (executable)
index 0000000..4118781
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-box_trim_thickening.brep] s 
+
+thickshell result s -5
+
+set square 47143.4
+
+set nb_v_good 26
+set nb_e_good 47
+set nb_w_good 23
+set nb_f_good 21
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 119
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_2 b/tests/bugs/modalg/bug21261_2
new file mode 100755 (executable)
index 0000000..ac01f10
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1.brep] s 
+
+thickshell result s -5
+
+set square 30288.5
+
+set nb_v_good 4
+set nb_e_good 10
+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 0
+set nb_shape_good 24
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.8136266443689317
+set center_X -34.878384652992025
+set center_Y 41.518039353084561
+set proj_X   0.5689244270324707
+set proj_Y   -0.54117375612258911
+set proj_Z   -0.61923813819885254
+set up_X     0.48309960961341858
+set up_Y     -0.38943690061569214
+set up_Z     0.78418976068496704
+set at_X     -38.500396728515625
+set at_Y     34.677536010742188
+set at_Z     -7.9150166511535645
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_20 b/tests/bugs/modalg/bug21261_20
new file mode 100755 (executable)
index 0000000..7f63b12
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-comb.brep] s 
+
+thickshell result s -5
+
+set square 25639.3
+
+set nb_v_good 18
+set nb_e_good 31
+set nb_w_good 17
+set nb_f_good 15
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 83
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_21 b/tests/bugs/modalg/bug21261_21
new file mode 100755 (executable)
index 0000000..5a2d84e
--- /dev/null
@@ -0,0 +1,39 @@
+puts "TODO OCC11111 ALL: Exception"
+puts "TODO OCC11111 ALL: An exception was caught"
+puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-comb1.brep] s 
+
+thickshell result s -5
+
+set square 25639.3
+
+set nb_v_good 18
+set nb_e_good 31
+set nb_w_good 17
+set nb_f_good 15
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 83
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_22 b/tests/bugs/modalg/bug21261_22
new file mode 100755 (executable)
index 0000000..7473484
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-2.brep] s 
+
+thickshell result s -5
+
+set square 66487
+
+set nb_v_good 12
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 62
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_23 b/tests/bugs/modalg/bug21261_23
new file mode 100755 (executable)
index 0000000..854763f
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-3.brep] s 
+
+thickshell result s -5
+
+set square 115498
+
+set nb_v_good 24
+set nb_e_good 48
+set nb_w_good 24
+set nb_f_good 24
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 122
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_24 b/tests/bugs/modalg/bug21261_24
new file mode 100755 (executable)
index 0000000..5e6373e
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-4.brep] s 
+
+thickshell result s -5
+
+set square 44935.7
+
+set nb_v_good 16
+set nb_e_good 28
+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 0
+set nb_shape_good 74
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_25 b/tests/bugs/modalg/bug21261_25
new file mode 100755 (executable)
index 0000000..704c7d4
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-5.brep] s 
+
+thickshell result s -5
+
+set square 29923.6
+
+set nb_v_good 4
+set nb_e_good 10
+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 0
+set nb_shape_good 24
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_26 b/tests/bugs/modalg/bug21261_26
new file mode 100755 (executable)
index 0000000..7ab75bd
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-cone1.brep] s 
+
+thickshell result s -5
+
+set square 11054.2
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_27 b/tests/bugs/modalg/bug21261_27
new file mode 100755 (executable)
index 0000000..1eee43c
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-revarc.brep] s 
+
+thickshell result s -5
+
+set square 39635.4
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_28 b/tests/bugs/modalg/bug21261_28
new file mode 100755 (executable)
index 0000000..c54e83f
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-revbzc.brep] s 
+
+thickshell result s -5
+
+set square 73788.5
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_29 b/tests/bugs/modalg/bug21261_29
new file mode 100755 (executable)
index 0000000..92e18e6
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-uneven_thickening.brep] s 
+
+thickshell result s -2
+
+set square 4087.41
+
+set nb_v_good 30
+set nb_e_good 51
+set nb_w_good 21
+set nb_f_good 21
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 125
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_3 b/tests/bugs/modalg/bug21261_3
new file mode 100755 (executable)
index 0000000..841eb26
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-2.brep] s 
+
+thickshell result s 5
+
+set square 61710.5
+
+set nb_v_good 12
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 62
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.4752524438940986
+set center_X 0.12443750381514462
+set center_Y 30.91257192276079
+set proj_X   0.75705158710479736
+set proj_Y   -0.55456298589706421
+set proj_Z   0.34544554352760315
+set up_X     -0.26271694898605347
+set up_Y     0.22571359574794769
+set up_Z     0.93810069561004639
+set at_X     -8.4405813217163086
+set at_Y     5.1293683052062988
+set at_Z     1.3484655618667603
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_30 b/tests/bugs/modalg/bug21261_30
new file mode 100755 (executable)
index 0000000..de3b029
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-2137_tsrf.brep] s 
+
+thickshell result s 5
+
+set square 27432.4
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_31 b/tests/bugs/modalg/bug21261_31
new file mode 100755 (executable)
index 0000000..ad7fff8
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1988_ellipsepipesrf_1.brep] s 
+
+thickshell result s 2
+
+set square 9163.91
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_32 b/tests/bugs/modalg/bug21261_32
new file mode 100755 (executable)
index 0000000..69bd16d
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-1988_bscpipesrf_2.brep] s 
+
+thickshell result s 2
+
+set square 5315.89
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_33 b/tests/bugs/modalg/bug21261_33
new file mode 100755 (executable)
index 0000000..7dbc87a
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-box_trim_thickening.brep] s 
+
+thickshell result s 5
+
+set square 50357.1
+
+set nb_v_good 34
+set nb_e_good 67
+set nb_w_good 35
+set nb_f_good 33
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 171
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_34 b/tests/bugs/modalg/bug21261_34
new file mode 100755 (executable)
index 0000000..295561e
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-box_trim_thickening.brep] s 
+
+thickshell result s 5 i
+
+set square 50743.4
+
+set nb_v_good 26
+set nb_e_good 47
+set nb_w_good 23
+set nb_f_good 21
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 119
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_35 b/tests/bugs/modalg/bug21261_35
new file mode 100755 (executable)
index 0000000..cef4765
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-box_trim_thickening.brep] s 
+
+thickshell result s -5 i
+
+set square 47143.4
+
+set nb_v_good 26
+set nb_e_good 47
+set nb_w_good 23
+set nb_f_good 21
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 119
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_36 b/tests/bugs/modalg/bug21261_36
new file mode 100755 (executable)
index 0000000..34d2c2a
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-comb.brep] s 
+
+thickshell result s 5
+
+set square 24835.8
+
+set nb_v_good 16
+set nb_e_good 26
+set nb_w_good 14
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 70
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_37 b/tests/bugs/modalg/bug21261_37
new file mode 100755 (executable)
index 0000000..20b489d
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-comb.brep] s 
+
+thickshell result s 5 i
+
+set square 24835.8
+
+set nb_v_good 16
+set nb_e_good 26
+set nb_w_good 14
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 70
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_38 b/tests/bugs/modalg/bug21261_38
new file mode 100755 (executable)
index 0000000..c2ea415
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-comb.brep] s 
+
+thickshell result s -5 i
+
+set square 25735.8
+
+set nb_v_good 16
+set nb_e_good 26
+set nb_w_good 14
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 70
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_39 b/tests/bugs/modalg/bug21261_39
new file mode 100755 (executable)
index 0000000..bbbd440
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-uneven_thickening.brep] s 
+
+thickshell result s 2
+
+set square 4435.62
+
+set nb_v_good 30
+set nb_e_good 51
+set nb_w_good 21
+set nb_f_good 21
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 125
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_4 b/tests/bugs/modalg/bug21261_4
new file mode 100755 (executable)
index 0000000..4c7572c
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-2.brep] s 
+
+thickshell result s -5
+
+set square 66487
+
+set nb_v_good 12
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 12
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 62
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.4752524438940986
+set center_X 0.12443750381514462
+set center_Y 30.91257192276079
+set proj_X   0.75705158710479736
+set proj_Y   -0.55456298589706421
+set proj_Z   0.34544554352760315
+set up_X     -0.26271694898605347
+set up_Y     0.22571359574794769
+set up_Z     0.93810069561004639
+set at_X     -8.4405813217163086
+set at_Y     5.1293683052062988
+set at_Z     1.3484655618667603
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_40 b/tests/bugs/modalg/bug21261_40
new file mode 100755 (executable)
index 0000000..f498f5e
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-3.brep] s 
+
+thickshell result s -5 i
+
+set square 115498
+
+set nb_v_good 24
+set nb_e_good 48
+set nb_w_good 24
+set nb_f_good 24
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 122
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    4.1681300306816444
+set center_X 0.13164276086378379
+set center_Y 6.6154949824974238
+set proj_X   0.48621529340744019
+set proj_Y   -0.47558537125587463
+set proj_Z   0.73308473825454712
+set up_X     -0.51949578523635864
+set up_Y     0.51725912094116211
+set up_Z     0.68012285232543945
+set at_X     1.1775522232055664
+set at_Y     -1.214188814163208
+set at_Z     0.14915035665035248
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_41 b/tests/bugs/modalg/bug21261_41
new file mode 100755 (executable)
index 0000000..db566bf
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-3.brep] s 
+
+thickshell result s 5 i
+
+set square 110064
+
+set nb_v_good 24
+set nb_e_good 48
+set nb_w_good 24
+set nb_f_good 24
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 122
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    4.1681300306816444
+set center_X 0.13164276086378379
+set center_Y 6.6154949824974238
+set proj_X   0.48621529340744019
+set proj_Y   -0.47558537125587463
+set proj_Z   0.73308473825454712
+set up_X     -0.51949578523635864
+set up_Y     0.51725912094116211
+set up_Z     0.68012285232543945
+set at_X     1.1775522232055664
+set at_Y     -1.214188814163208
+set at_Z     0.14915035665035248
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_42 b/tests/bugs/modalg/bug21261_42
new file mode 100755 (executable)
index 0000000..203677a
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-4.brep] s 
+
+thickshell result s -5 i
+
+set square 44935.7
+
+set nb_v_good 16
+set nb_e_good 28
+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 0
+set nb_shape_good 74
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.7979972910353759
+set center_X 134.00320461480183
+set center_Y 57.36536300752401
+set proj_X   0.40099617838859558
+set proj_Y   -0.39083370566368103
+set proj_Z   0.82852339744567871
+set up_X     -0.58777821063995361
+set up_Y     0.58394128084182739
+set up_Z     0.55993682146072388
+set at_X     14.468252182006836
+set at_Y     -14.975484848022461
+set at_Z     -8.813446044921875
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_43 b/tests/bugs/modalg/bug21261_43
new file mode 100755 (executable)
index 0000000..deae111
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-4.brep] s 
+
+thickshell result s 5 i
+
+set square 43286.4
+
+set nb_v_good 16
+set nb_e_good 28
+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 0
+set nb_shape_good 74
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.7979972910353759
+set center_X 134.00320461480183
+set center_Y 57.36536300752401
+set proj_X   0.40099617838859558
+set proj_Y   -0.39083370566368103
+set proj_Z   0.82852339744567871
+set up_X     -0.58777821063995361
+set up_Y     0.58394128084182739
+set up_Z     0.55993682146072388
+set at_X     14.468252182006836
+set at_Y     -14.975484848022461
+set at_Z     -8.813446044921875
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_44 b/tests/bugs/modalg/bug21261_44
new file mode 100755 (executable)
index 0000000..0001237
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-cone1.brep] s 
+
+thickshell result s 5
+
+set square 14506.6
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    17.084273613995954
+set center_X 210.44987026890158
+set center_Y -5.2570485620847549
+set proj_X   0.98952245712280273
+set proj_Y   -0.12535266578197479
+set proj_Z   0.071637466549873352
+set up_X     -0.016377445310354233
+set up_Y     0.39552098512649536
+set up_Z     0.91831082105636597
+set at_X     121.38485717773438
+set at_Y     -46.730243682861328
+set at_Z     83.376449584960938
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_45 b/tests/bugs/modalg/bug21261_45
new file mode 100755 (executable)
index 0000000..2ab6f51
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-revarc.brep] s 
+
+thickshell result s 5
+
+set square 48246.4
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_46 b/tests/bugs/modalg/bug21261_46
new file mode 100755 (executable)
index 0000000..a08115c
--- /dev/null
@@ -0,0 +1,36 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-revbzc.brep] s 
+
+thickshell result s 5
+
+set square 83884.6
+
+set nb_v_good 4
+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 0
+set nb_shape_good 22
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_5 b/tests/bugs/modalg/bug21261_5
new file mode 100755 (executable)
index 0000000..155ea36
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-3.brep] s 
+
+thickshell result s 5
+
+set square 110064
+
+set nb_v_good 24
+set nb_e_good 48
+set nb_w_good 24
+set nb_f_good 24
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 122
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    4.1681300306816444
+set center_X 0.13164276086378379
+set center_Y 6.6154949824974238
+set proj_X   0.48621529340744019
+set proj_Y   -0.47558537125587463
+set proj_Z   0.73308473825454712
+set up_X     -0.51949578523635864
+set up_Y     0.51725912094116211
+set up_Z     0.68012285232543945
+set at_X     1.1775522232055664
+set at_Y     -1.214188814163208
+set at_Z     0.14915035665035248
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_6 b/tests/bugs/modalg/bug21261_6
new file mode 100755 (executable)
index 0000000..8c7e84d
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-3.brep] s 
+
+thickshell result s -5
+
+set square 115498
+
+set nb_v_good 24
+set nb_e_good 48
+set nb_w_good 24
+set nb_f_good 24
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 122
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    4.1681300306816444
+set center_X 0.13164276086378379
+set center_Y 6.6154949824974238
+set proj_X   0.48621529340744019
+set proj_Y   -0.47558537125587463
+set proj_Z   0.73308473825454712
+set up_X     -0.51949578523635864
+set up_Y     0.51725912094116211
+set up_Z     0.68012285232543945
+set at_X     1.1775522232055664
+set at_Y     -1.214188814163208
+set at_Z     0.14915035665035248
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_7 b/tests/bugs/modalg/bug21261_7
new file mode 100755 (executable)
index 0000000..37539d4
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-4.brep] s 
+
+thickshell result s 5
+
+set square 43286.4
+
+set nb_v_good 16
+set nb_e_good 28
+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 0
+set nb_shape_good 74
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.7979972910353759
+set center_X 134.00320461480183
+set center_Y 57.36536300752401
+set proj_X   0.40099617838859558
+set proj_Y   -0.39083370566368103
+set proj_Z   0.82852339744567871
+set up_X     -0.58777821063995361
+set up_Y     0.58394128084182739
+set up_Z     0.55993682146072388
+set at_X     14.468252182006836
+set at_Y     -14.975484848022461
+set at_Z     -8.813446044921875
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_8 b/tests/bugs/modalg/bug21261_8
new file mode 100755 (executable)
index 0000000..94ccb61
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-4.brep] s 
+
+thickshell result s -5
+
+set square 44935.7
+
+set nb_v_good 16
+set nb_e_good 28
+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 0
+set nb_shape_good 74
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    5.7979972910353759
+set center_X 134.00320461480183
+set center_Y 57.36536300752401
+set proj_X   0.40099617838859558
+set proj_Y   -0.39083370566368103
+set proj_Z   0.82852339744567871
+set up_X     -0.58777821063995361
+set up_Y     0.58394128084182739
+set up_Z     0.55993682146072388
+set at_X     14.468252182006836
+set at_Y     -14.975484848022461
+set at_Z     -8.813446044921875
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21261_9 b/tests/bugs/modalg/bug21261_9
new file mode 100755 (executable)
index 0000000..f9d6d84
--- /dev/null
@@ -0,0 +1,54 @@
+puts "========"
+puts "OCC21261"
+puts "Customer : TATA"
+puts "========"
+puts ""
+######################################################
+# Implementation of thickening of shell functionality
+######################################################
+
+set BugNumber OCC21261
+
+restore [locate_data_file OCC21261-5.brep] s 
+
+thickshell result s 5
+
+set square 36363.8
+
+set nb_v_good 4
+set nb_e_good 10
+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 0
+set nb_shape_good 24
+
+
+
+vinit
+vdisplay result
+vsetdispmode 0
+vfit
+
+set scale    6.3723487126883533
+set center_X -4.2632564145606011e-14
+set center_Y -22.430308400362279
+set proj_X   0.57735025882720947
+set proj_Y   -0.57735025882720947
+set proj_Z   0.57735025882720947
+set up_X     -0.40824827551841736
+set up_Y     0.40824827551841736
+set up_Z     0.81649655103683472
+set at_X     0
+set at_Y     0
+set at_Z     0
+
+vviewparams ${scale} ${center_X} ${center_Y} \
+               ${proj_X} ${proj_Y} ${proj_Z} \
+               ${up_X} ${up_Y} ${up_Z} \
+               ${at_X} ${at_Y} ${at_Z}
+
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21448 b/tests/bugs/modalg/bug21448
new file mode 100755 (executable)
index 0000000..2fb2f90
--- /dev/null
@@ -0,0 +1,50 @@
+puts "============"
+puts "OCC21448"
+puts "============"
+puts ""
+#######################################################################
+# Invalid result of BRepOffsetAPI_MakePipeShell
+#######################################################################
+
+set BugNumber OCC21448
+
+puts "Load first shape ..."
+restore [locate_data_file bug21448_base_1.brep] base1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug21448_Invert_2.brep] Invert_2 
+
+puts "Load third shape ..."
+restore [locate_data_file bug21448_chemin.brep] chemin 
+
+puts "Prepare shapes ..."
+wire w1 chemin
+explode base1 W
+explode Invert_2 W
+explode chemin V
+
+puts "Start Make pipe ..."
+mksweep w1
+addsweep base1_1 chemin_1 -R
+addsweep Invert_2_1 chemin_2 -R
+buildsweep result
+puts "Finish Make pipe ..."
+
+set square 1040.94
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 15
+
+vinit
+vsetdispmode 0
+vdisplay result
+vfit
+
+set only_screen 0
diff --git a/tests/bugs/modalg/bug21460 b/tests/bugs/modalg/bug21460
new file mode 100755 (executable)
index 0000000..aeb40c3
--- /dev/null
@@ -0,0 +1,38 @@
+puts "============"
+puts "OCC21460"
+puts "============"
+puts ""
+#######################################################################
+# SIGFPE in BOP on two attached edges
+#######################################################################
+
+set BugNumber OCC21460
+
+puts "Load first shape ..."
+restore [locate_data_file bug21460_aE1.brep] e1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug21460_aE2.brep] e2 
+
+puts "Prepare boolean operation ..."
+bop e1 e2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set mistake 0
+
+set length 448.285
+
+set nb_v_good 5
+set nb_e_good 4
+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 1
+set nb_shape_good 11
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug21540 b/tests/bugs/modalg/bug21540
new file mode 100755 (executable)
index 0000000..489c942
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC21540"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation section produces wrong result (OCC 6.3.1)
+#######################################################################
+
+set BugNumber OCC21540
+
+puts "Load first shape ..."
+restore [locate_data_file OCC21540-HalfSpace.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file OCC21540-Shape.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 462.35
+
+set nb_v_good 58
+set nb_e_good 58
+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 117
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug21652_1 b/tests/bugs/modalg/bug21652_1
new file mode 100755 (executable)
index 0000000..2f29925
--- /dev/null
@@ -0,0 +1,36 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC21652"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# TATA-08-005 Problem with offset on the wire
+#######################################################################
+
+set BugNumber OCC21652
+
+puts "Load shape ..."
+restore [locate_data_file OCC21652.brep] a 
+
+if [catch { mkoffset resoffset a 1 1.0 } ] {
+  puts "Faulty ${BugNumber} : mkoffset is wrong"
+} else {
+  renamevar resoffset_1 result
+
+set length 372.531
+
+set nb_v_good 93
+set nb_e_good 93
+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 187
+}
+
+set 2dviewer 1
+
diff --git a/tests/bugs/modalg/bug21652_2 b/tests/bugs/modalg/bug21652_2
new file mode 100755 (executable)
index 0000000..b098efd
--- /dev/null
@@ -0,0 +1,34 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC21652"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# TATA-08-005 Problem with offset on the wire
+#######################################################################
+
+set BugNumber OCC21652
+
+puts "Load shape ..."
+restore [locate_data_file OCC21652.brep] a 
+
+if [catch { mkoffset resoffset a 1 0.9 } ] {
+  puts "Faulty ${BugNumber} : mkoffset is wrong"
+} else {
+  renamevar resoffset_1 result
+
+set length 371.913
+
+set nb_v_good 93
+set nb_e_good 93
+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 187
+}
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug21722 b/tests/bugs/modalg/bug21722
new file mode 100755 (executable)
index 0000000..3cc537f
--- /dev/null
@@ -0,0 +1,41 @@
+puts "============"
+puts "OCC21722"
+puts "============"
+puts ""
+#######################################################################
+# The operation Section produces non-complete result.
+#######################################################################
+
+set BugNumber OCC21722
+
+puts "Load shape ..."
+restore [locate_data_file OCC21722.brep] g 
+
+puts "Prepare first shape ..."
+explode g
+copy g_1 b1
+
+puts "Prepare second shape ..."
+copy g_2 b2
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 1.91376
+
+set nb_v_good 4
+set nb_e_good 2
+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 7
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22109_1 b/tests/bugs/modalg/bug22109_1
new file mode 100755 (executable)
index 0000000..02896ee
--- /dev/null
@@ -0,0 +1,35 @@
+puts "============"
+puts "OCC22109"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation common fails. Appendix to the SALOME bug: 0021060 
+#######################################################################
+
+set BugNumber OCC22109
+
+puts "Load first shape ..."
+restore [locate_data_file bug22109_Solid_24.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22109_tore.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set nb_v_good 0
+set nb_e_good 0
+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 1
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22109_2 b/tests/bugs/modalg/bug22109_2
new file mode 100755 (executable)
index 0000000..f5b7c41
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22109"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation common fails. Appendix to the SALOME bug: 0021060 
+#######################################################################
+
+set BugNumber OCC22109
+
+puts "Load first shape ..."
+restore [locate_data_file bug22109_Solid_24.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22109_tore.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set square 87449.7
+
+set nb_v_good 17
+set nb_e_good 25
+set nb_w_good 14
+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 69
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22109_3 b/tests/bugs/modalg/bug22109_3
new file mode 100755 (executable)
index 0000000..29bb709
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22109"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation common fails. Appendix to the SALOME bug: 0021060 
+#######################################################################
+
+set BugNumber OCC22109
+
+puts "Load first shape ..."
+restore [locate_data_file bug22109_Solid_24.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22109_tore.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 87443.6
+
+set nb_v_good 16
+set nb_e_good 23
+set nb_w_good 14
+set nb_f_good 10
+set nb_sh_good 2
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 68
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22109_4 b/tests/bugs/modalg/bug22109_4
new file mode 100755 (executable)
index 0000000..42d9186
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22109"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation common fails. Appendix to the SALOME bug: 0021060 
+#######################################################################
+
+set BugNumber OCC22109
+
+puts "Load first shape ..."
+restore [locate_data_file bug22109_Solid_24.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22109_tore.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+boptuc result
+puts "Finish boolean operation ..."
+
+set square 1140.6
+
+set nb_v_good 5
+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 25
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22109_5 b/tests/bugs/modalg/bug22109_5
new file mode 100755 (executable)
index 0000000..d06800c
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22109"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation common fails. Appendix to the SALOME bug: 0021060 
+#######################################################################
+
+set BugNumber OCC22109
+
+puts "Load first shape ..."
+restore [locate_data_file bug22109_Solid_24.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22109_tore.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopsection result
+puts "Finish boolean operation ..."
+
+set length 127.699
+
+set nb_v_good 4
+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 11
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22310 b/tests/bugs/modalg/bug22310
new file mode 100755 (executable)
index 0000000..4535479
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22310"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation common fails. Appendix to the SALOME bug: 0021128
+#######################################################################
+
+set BugNumber OCC22310
+
+puts "Load first shape ..."
+restore [locate_data_file bug22310_vol_inf_30.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22310_vol_sup_30.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 0.0457691
+
+set nb_v_good 6
+set nb_e_good 9
+set nb_w_good 5
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 28
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22356 b/tests/bugs/modalg/bug22356
new file mode 100755 (executable)
index 0000000..748acac
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22356"
+puts "============"
+puts ""
+#######################################################################
+# The result of fuse is not valid for two straight edges.
+#    Appendix to the SALOME bug: IPAL22182
+#######################################################################
+
+set BugNumber OCC22356
+
+restore [locate_data_file bug22356_cy.brep] bq 
+explode bq e
+copy bq_1 b1
+copy bq_2 b2
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopfuse result
+puts "Finish boolean operation ..."
+
+set length 300
+
+set nb_v_good 3
+set nb_e_good 2
+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 1
+set nb_shape_good 7
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22409_1 b/tests/bugs/modalg/bug22409_1
new file mode 100755 (executable)
index 0000000..be3f117
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22409"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation cut fails. Appendix to the SALOME bug: 0019957
+#######################################################################
+
+set BugNumber OCC22409
+
+puts "Load first shape ..."
+restore [locate_data_file bug22409_Defaut1.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22409_Solid_7.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcommon result
+puts "Finish boolean operation ..."
+
+set square 14969
+
+set nb_v_good 6
+set nb_e_good 9
+set nb_w_good 5
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 28
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22409_2 b/tests/bugs/modalg/bug22409_2
new file mode 100755 (executable)
index 0000000..f0141b4
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22409"
+puts "============"
+puts ""
+#######################################################################
+# Boolean operation cut fails. Appendix to the SALOME bug: 0019957
+#######################################################################
+
+set BugNumber OCC22409
+
+puts "Load first shape ..."
+restore [locate_data_file bug22409_bloc.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22409_Defaut1_new.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 366764
+
+set nb_v_good 40
+set nb_e_good 60
+set nb_w_good 22
+set nb_f_good 22
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 147
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22436 b/tests/bugs/modalg/bug22436
new file mode 100755 (executable)
index 0000000..3b4e2f3
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC22436"
+puts "============"
+puts ""
+#######################################################################
+# Extra compound is created when importing non-manifold topology from STEP file 
+#######################################################################
+
+catch { pload XDE }
+
+set BugNumber OCC22436
+
+param read.step.nonmanifold 1
+
+stepread [locate_data_file bug22436_box.step] b1 *
+renamevar b1_1 result
+
+set square 3.2e+11
+
+set nb_v_good 12
+set nb_e_good 20
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 2
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 59
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22557 b/tests/bugs/modalg/bug22557
new file mode 100755 (executable)
index 0000000..4913814
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22557"
+puts "============"
+puts ""
+#######################################################################
+# Bad result of the Cut operation (for CAS63-sp12-*)
+#######################################################################
+
+set BugNumber OCC22557
+
+puts "Load first shape ..."
+restore [locate_data_file bug22557_Bloc_racine_70deg.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22557_PaveEntree.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 0.172993
+
+set nb_v_good 192
+set nb_e_good 288
+set nb_w_good 98
+set nb_f_good 98
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 679
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22588 b/tests/bugs/modalg/bug22588
new file mode 100755 (executable)
index 0000000..c863854
--- /dev/null
@@ -0,0 +1,39 @@
+puts "============"
+puts "OCC22588"
+puts "============"
+puts ""
+#######################################################################
+# Revolution with negative volume in some cases
+#######################################################################
+
+set BugNumber OCC22588
+
+vertex v1 0 0 0
+vertex v12 0 0 160
+vertex v13 25 0 25
+edge e7 v1 v12
+edge e8 v12 v13
+edge e9 v13 v1
+wire w2 e7 e8 e9
+plane pln1 25 0 25 0 1 0 -25 0 -25
+mkface face2 pln1 w2
+revol result face2 0 0 0 0 0 1 45
+
+set square 5694.99
+
+set nb_v_good 3
+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 0
+set nb_shape_good 21
+
+vinit
+vdisplay result
+vfit
+
+set only_screen 0
+
diff --git a/tests/bugs/modalg/bug22678 b/tests/bugs/modalg/bug22678
new file mode 100755 (executable)
index 0000000..c72b144
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC22678"
+puts "============"
+puts ""
+#######################################################################
+# Bad result of the Cut operation.
+#######################################################################
+
+set BugNumber OCC22678
+
+puts "Load first shape ..."
+restore [locate_data_file bug22678_objCut.brep] b1 
+
+puts "Load second shape ..."
+restore [locate_data_file bug22678_toolCut.brep] b2 
+
+puts "Prepare boolean operation ..."
+bop b1 b2
+
+puts "Start boolean operation ..."
+bopcut result
+puts "Finish boolean operation ..."
+
+set square 574348
+
+set nb_v_good 17
+set nb_e_good 29
+set nb_w_good 16
+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 80
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug22804 b/tests/bugs/modalg/bug22804
new file mode 100755 (executable)
index 0000000..c8e3e49
--- /dev/null
@@ -0,0 +1,58 @@
+puts "========================"
+puts "OCC22804"
+puts "========================"
+puts ""
+#######################################################################
+# Sewing increases tolerance of vertices for redundant value.
+#######################################################################
+
+set BugNumber OCC22804
+
+catch {pload XDE}
+
+restore [locate_data_file OCC22804-sew_bug.brep] a 
+
+set tol 200
+sewing result ${tol} a
+
+set ToleranceList [tolerance result]
+regexp {Tolerance MAX=([-0-9.+eE]+)} $ToleranceList full oTolerance
+regexp {FACE[ \t]*: MAX=([-0-9.+eE]+)} $ToleranceList full FaceTolerance
+regexp {EDGE[ \t]*: MAX=([-0-9.+eE]+)} $ToleranceList full EdgeTolerance
+regexp {VERTEX[ \t]*: MAX=([-0-9.+eE]+)} $ToleranceList full VertexTolerance
+
+set percent_max 0.1
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+set IsOk 1
+
+set minTolerance ${EdgeTolerance}
+if { ${minTolerance}  > ${VertexTolerance} } {
+   set minTolerance $(VertexTolerance)
+}
+
+set minTolerance_percent [GetPercent ${minTolerance} ${oTolerance}]
+puts "minTolerance_percent = ${minTolerance_percent} %"
+if { ${minTolerance_percent}  > ${percent_max} } {
+   set IsOk 0
+}
+
+if { ${IsOk}  == 0 } {
+   puts "${BugNumber}: Faulty"
+} else {
+   puts "${BugNumber}: OK"
+}
+
+set square 1.22542e+09
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug22864 b/tests/bugs/modalg/bug22864
new file mode 100755 (executable)
index 0000000..47c6d02
--- /dev/null
@@ -0,0 +1,101 @@
+puts "============"
+puts "OCC22864"
+puts "============"
+puts ""
+##############################################################################################
+# The algorithm BiTgte_Blend obtains instable results
+##############################################################################################
+
+set BugNumber OCC22864
+
+restore [locate_data_file bug22864_face1.brep] f1 
+restore [locate_data_file bug22864_face2.brep] f2 
+
+shape aShape C
+add f1 aShape
+add f2 aShape
+
+#
+set status 0
+#
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+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 Numbers 11
+#
+for {set i 0} {$i < ${Numbers}} {incr i} {
+    puts "i=$i"
+    rollingball result aShape 15 @ f1 f2
+    
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v
+    regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e
+    regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w
+    regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f
+    regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh
+    regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol
+    regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol
+    regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound
+    regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape
+    
+    if {$nb_v != $nb_v_good || $nb_e != $nb_e_good ||
+       $nb_w != $nb_w_good || $nb_f != $nb_f_good ||
+       $nb_sh != $nb_sh_good || $nb_sol != $nb_sol_good || 
+       $nb_compsol != $nb_compsol_good || $nb_compound != $nb_compound_good ||
+       $nb_shape != $nb_shape_good } {
+        set status 1
+    }
+     
+    set aFile $imagedir/${test_image}.brep
+    puts "aFile=${aFile}"
+    file delete ${aFile}
+    if { [file exists ${aFile}] } {
+       puts "There is old ${aFile} file; Error"
+       set status 1
+    }
+  #
+    save result ${aFile}
+    catch {exec chmod 777 ${aFile}}
+    if { ![file exists ${aFile}] } {
+       puts "There is not ${aFile} file; save command: Error"
+       set status 1
+    }
+
+    set fp [open ${aFile} "r"]
+    set Log [read -nonewline ${fp}]
+    close ${fp}
+  #
+    if {$i == 0} {
+       set StandardLog ${Log}
+    } else {
+       set info_result [string compare ${Log} ${StandardLog}]
+       if {${info_result} == 0} {
+           # Log == StandardLog
+           puts "Log == StandardLog"
+       } else {
+           # Log != StandardLog
+           set status 1
+           puts "Log != StandardLog"
+       }
+    }
+}
+
+# Resume
+puts ""
+if {${status} == 0} {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
+set square 6935.38
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug22893 b/tests/bugs/modalg/bug22893
new file mode 100755 (executable)
index 0000000..fa98fb2
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC22893"
+puts "============"
+puts ""
+#############################################################################
+# Possible regression is tesselation algorithm of OCCT 6.5.2 
+#############################################################################
+
+set BugNumber OCC22893
+
+catch {pload XDE}
+
+igesread [locate_data_file OCC22893-thread_22534_boing777.igs] result *
+
+set square 26974.5
+
+set nb_v_good 4183
+set nb_e_good 4191
+set nb_w_good 653
+set nb_f_good 639
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 9667
+
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug22967 b/tests/bugs/modalg/bug22967
new file mode 100755 (executable)
index 0000000..3f0fa17
--- /dev/null
@@ -0,0 +1,59 @@
+puts "============"
+puts "OCC22967"
+puts "============"
+puts ""
+############################################################################################################
+# Boolean operations between two cylinders with orthogonal axis generate a shape with big vertex tolerance
+###########################################################################################################
+
+set BugNumber OCC22967
+set check_value 1.04742e-05
+
+restore [locate_data_file bug22967_Cylinder_1.brep] b1 
+restore [locate_data_file bug22967_Scale_1.brep] b2 
+bop b1 b2
+bopfuse result
+set info [ maxtolerance result ]
+
+regexp {Edge[ \t]*:.*Max[ \t]*([-0-9.+eE]+)} $info full last1
+regexp {Vertex[ \t]*:.*Max[ \t]*([-0-9.+eE]+)} $info full last
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 5
+set status 0
+
+set Tolerance_percent [expr abs ( [GetPercent ${last} ${check_value}] ) ]
+if {${Tolerance_percent} > ${percent_max}} {
+    set status 1
+} else {
+    set status 0
+}
+
+set Tolerance_percent [expr abs ( [GetPercent ${last1} ${check_value}] ) ]
+if {${Tolerance_percent} > ${percent_max}} {
+    set status 1
+} else {
+    set status 0
+}
+
+# Resume
+if {${status} > 0} {
+   puts "${BugNumber}: Faulty"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set square 671262
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug22968 b/tests/bugs/modalg/bug22968
new file mode 100755 (executable)
index 0000000..8b431cb
--- /dev/null
@@ -0,0 +1,28 @@
+puts "================"
+puts "OCC22968"
+puts "================"
+puts ""
+######################################################################################
+# RebuildShape exchanges 2d-curves
+######################################################################################
+
+set BugNumber OCC22968
+
+pload XDE
+
+restore [locate_data_file OCC22968-cylface.brep] a 
+checkshape a f
+removeloc result a
+set info [ checkshape result f ]
+
+if { [regexp {The Shape result looks OK} $info] } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+set square 3141.59
+set 2dviewer 0
+
+
+
diff --git a/tests/bugs/modalg/bug23029_1 b/tests/bugs/modalg/bug23029_1
new file mode 100755 (executable)
index 0000000..b6b72cd
--- /dev/null
@@ -0,0 +1,56 @@
+puts "============"
+puts "OCC23029"
+puts "============"
+puts ""
+#######################################################################
+# split shape algorithm works incorrectly in some cases
+#######################################################################
+
+set BugNumber OCC23029
+
+catch { pload XDE }
+
+testreadstep [locate_data_file OCC23029-ProblemF.stp] a
+restore [locate_data_file OCC23029-TempW.brep] t 
+
+checkshape a
+explode a f
+splitshape result a a_1 t
+
+set square 215.198
+
+set nb_v_good 19
+set nb_e_good 21
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 45
+
+set CheckShape_status 0
+
+set ll [ llength [explode result f2 ] ]
+
+if { $ll != 2 } {
+    set CheckShape_status 1
+}
+
+# Resume
+puts ""
+if { ${CheckShape_status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+vinit
+vsetdispmode 1
+vdisplay result
+vfit
+
+vmoveto 252 289
+
+set only_screen 1
+
diff --git a/tests/bugs/modalg/bug23174 b/tests/bugs/modalg/bug23174
new file mode 100755 (executable)
index 0000000..6ee5a62
--- /dev/null
@@ -0,0 +1,103 @@
+puts "================"
+puts "OCC23174"
+puts "================"
+puts ""
+##############################################################################
+# BRepLib_MakeFace(Wire) creates an invalid face on a wire of cylinder bottom
+##############################################################################
+
+set BugNumber OCC23174
+
+catch {pload XDE}
+
+set status 0
+
+# make a cylinder
+pcylinder cyl 50 150
+
+# get wires
+explode cyl W
+
+# make a face from the 3-d wire (planar bottom of the cylinder)
+mkplane f cyl_3 0
+
+# BUG: face is built on a cylindrical face of the cylinder instead of
+# a bottom face
+set reslog [checkshape f -short]
+puts $reslog
+if { $reslog != "This shape seems to be valid" } { set status 1 }
+
+# ========================================================================
+# Make a new cylindrical face from a wire composed from more than 3 edges
+# to check that the bug fix is valid for a wire of more than 1 edge
+# ========================================================================
+
+# get a bottom edge cyl_1; cyl_2 is a top edge; cyl_3 is a seam edge
+nexplode cyl E
+
+# get its 3D curve
+mkcurve c3D cyl_1
+
+# split cyl_1 into 3 edges
+mkedge e1 c3D 0 2
+mkedge e2 c3D 2 4
+mkedge e3 c3D 4 6.28318530717959
+
+# make a reversed seam
+copy cyl_3 cyl_3_r
+treverse cyl_3_r
+
+# make a new wire for a new cylindrical face
+wire w e1 e2 e3 cyl_3 cyl_2 cyl_3_r
+
+# get a surface for a new face
+nexplode cyl F
+mksurface cyl_surf cyl_3
+
+# make a new cylindrical face
+mkface cyl_face_0 cyl_surf w
+fixshape cyl_face cyl_face_0
+
+# make a wire of 3 bottom edges to check the fix
+explode cyl_face E
+wire w cyl_face_2 cyl_face_1 cyl_face_3
+
+# check the fix, i.e. that cylindrical surface is rejected and thus a valid face is built
+mkplane f w 0
+donly f
+set res_log [checkshape f -short]
+puts $reslog
+if { $reslog != "This shape seems to be valid" } { set status 1 }
+
+# =================================================================
+#check that mkplane finds cyl_surf if the wire of cyl_face is given
+# =================================================================
+
+explode cyl_face W
+mkplane f cyl_face_1 0
+
+# get surface of f
+mksurface cyl_surf_2 f
+
+# compare points of 2 surfaces at same UV
+svalue cyl_surf   1 1 x1 y1 z1
+svalue cyl_surf_2 1 1 x2 y2 z2
+
+if { [ expr [dval x1] - [dval x2] ] > 0.0 } { set status 1 }
+if { [ expr [dval y1] - [dval y2] ] > 0.0 } { set status 1 }
+if { [ expr [dval z1] - [dval z2] ] > 0.0 } { set status 1 }
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+renamevar f result
+set square 47123.9
+set 2dviewer 0
+
+
+
+
diff --git a/tests/bugs/modalg/bug23214 b/tests/bugs/modalg/bug23214
new file mode 100755 (executable)
index 0000000..bff2c5b
--- /dev/null
@@ -0,0 +1,26 @@
+puts "============"
+puts "OCC23214"
+puts "============"
+puts ""
+#######################################################################
+# BOP section operation produces incorrect result.
+#######################################################################
+
+restore [locate_data_file OCC23214-face_1188.brep] b1
+restore [locate_data_file OCC23214-shell_for_line_1188.brep] b2
+
+bop b1 b2
+bopsection result
+
+set length 2.94086
+set nb_good_vertex 4
+set nb_good_edge 2
+set nb_good_wire 0
+set nb_good_face 0
+set nb_good_shell 0
+set nb_good_solid 0
+set nb_good_compsolid 0
+set nb_good_compound 1
+set nb_good_shape 7
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug23341 b/tests/bugs/modalg/bug23341
new file mode 100755 (executable)
index 0000000..98d44b3
--- /dev/null
@@ -0,0 +1,22 @@
+puts "================"
+puts "OCC23341"
+puts "================"
+puts ""
+#######################################################################
+# Wrong result done by 2D classifier algorithm for a point and a face
+#######################################################################
+
+set BugNumber OCC23341
+
+restore [locate_data_file bug23341_f1] f1
+restore [locate_data_file bug23341_p] p
+set info [b2dclassify f1 p]
+set check [regexp "OUT" $info]
+
+if { ${check} == 1 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
+
diff --git a/tests/bugs/modalg/bug5805_10 b/tests/bugs/modalg/bug5805_10
new file mode 100755 (executable)
index 0000000..45b8520
--- /dev/null
@@ -0,0 +1,58 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# ellipse1
+ellipse ell 10 0 0 1 0 0 5 3
+mkedge ee1 ell
+wire UpCover ee1
+
+# ellipse2
+copy ee1 ee2
+ttranslate ee2 -20 0 0
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 1041.35
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 21
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_11 b/tests/bugs/modalg/bug5805_11
new file mode 100755 (executable)
index 0000000..9bc05c7
--- /dev/null
@@ -0,0 +1,57 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+cpulimit 1400
+# ellipse1
+ellipse ell 10 0 0 1 0 0 5 3
+mkedge ee1 ell
+wire UpCover ee1
+
+# ellipse2
+copy ee1 ee2
+ttranslate ee2 -20 0 0
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 1041.35
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 21
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_12 b/tests/bugs/modalg/bug5805_12
new file mode 100755 (executable)
index 0000000..417a4b2
--- /dev/null
@@ -0,0 +1,58 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# ellipse1
+ellipse ell 10 0 0 1 0 0 5 3
+mkedge ee1 ell
+wire UpCover ee1
+
+# ellipse2
+copy ee1 ee2
+ttranslate ee2 -20 0 0
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+
+
+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 index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_13 b/tests/bugs/modalg/bug5805_13
new file mode 100755 (executable)
index 0000000..208f29e
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 5 0 ${z1} 5 5 ${z1} 0 5 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 0 0 ${z2} 5 0 ${z2} 5 5 ${z2} 0 5 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 176
+
+set nb_v_good 8
+set nb_e_good 12
+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 0
+set nb_shape_good 34
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_14 b/tests/bugs/modalg/bug5805_14
new file mode 100755 (executable)
index 0000000..88bb8d9
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 5 0 ${z1} 5 5 ${z1} 0 5 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 0 0 ${z2} 5 0 ${z2} 5 5 ${z2} 0 5 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_5} $calcul $type }
+
+
+set square 402
+
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 65
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_15 b/tests/bugs/modalg/bug5805_15
new file mode 100755 (executable)
index 0000000..e01daaa
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 5 0 ${z1} 5 5 ${z1} 0 5 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 0 0 ${z2} 5 0 ${z2} 5 5 ${z2} 0 5 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_6} $calcul $type }
+
+
+set square 402
+
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 65
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_16 b/tests/bugs/modalg/bug5805_16
new file mode 100755 (executable)
index 0000000..07fa432
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 5 0 ${z1} 5 5 ${z1} 0 5 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 0 0 ${z2} 5 0 ${z2} 5 5 ${z2} 0 5 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_5 s_6} $calcul $type }
+
+
+set square 378
+
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 10
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 64
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_17 b/tests/bugs/modalg/bug5805_17
new file mode 100755 (executable)
index 0000000..a64f73a
--- /dev/null
@@ -0,0 +1,67 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+puts "TODO ?OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC11111 ALL: Faulty OCC5805 : result is not Closed shape"
+puts "TODO ?OCC11111 ALL: Error : The command is not valid."
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+copy e1 e2
+ttranslate e2 0 0 ${z2}
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {} $calcul $type }
+# Null result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_18 b/tests/bugs/modalg/bug5805_18
new file mode 100755 (executable)
index 0000000..0bcf401
--- /dev/null
@@ -0,0 +1,65 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+copy e1 e2
+ttranslate e2 0 0 ${z2}
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+# Bad result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_19 b/tests/bugs/modalg/bug5805_19
new file mode 100755 (executable)
index 0000000..ea4c692
--- /dev/null
@@ -0,0 +1,66 @@
+puts "TODO ?OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+puts "TODO ?OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+copy e1 e2
+ttranslate e2 0 0 ${z2}
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+# Bad result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_20 b/tests/bugs/modalg/bug5805_20
new file mode 100755 (executable)
index 0000000..6634ab1
--- /dev/null
@@ -0,0 +1,65 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+copy e1 e2
+ttranslate e2 0 0 ${z2}
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+# Bad result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_21 b/tests/bugs/modalg/bug5805_21
new file mode 100755 (executable)
index 0000000..d3d4fb9
--- /dev/null
@@ -0,0 +1,60 @@
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 236.013
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_22 b/tests/bugs/modalg/bug5805_22
new file mode 100755 (executable)
index 0000000..20d0140
--- /dev/null
@@ -0,0 +1,60 @@
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 484.846
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 21
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_23 b/tests/bugs/modalg/bug5805_23
new file mode 100755 (executable)
index 0000000..0995e52
--- /dev/null
@@ -0,0 +1,60 @@
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 484.846
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 21
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_24 b/tests/bugs/modalg/bug5805_24
new file mode 100755 (executable)
index 0000000..d3c2632
--- /dev/null
@@ -0,0 +1,60 @@
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {s_3 s_2} $calcul $type }
+
+
+set square 472.222
+
+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 index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_25 b/tests/bugs/modalg/bug5805_25
new file mode 100755 (executable)
index 0000000..5f50d97
--- /dev/null
@@ -0,0 +1,85 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#     *
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |         \
+#     |           \
+#     |   * v3      \
+#     |   | \         \
+#     |   |   \         \
+#     |   |     \         \
+#     |   |       \        \
+#     |   |       /* v2      *
+#     |   |     /          /
+#     |   |   /          /
+#     |   | /          /
+#     |   *          /
+#     |     v1     /
+#     |          /
+#     |        /
+#     |      /
+#     |    /
+#     |  /
+#     |/
+#     *
+#
+cpulimit 1400
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover -5 -5 ${z2} 10 10 ${z2} -5 20 ${z2} -5 -5 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 914.876
+
+set nb_v_good 6
+set nb_e_good 9
+set nb_w_good 5
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 27
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_26 b/tests/bugs/modalg/bug5805_26
new file mode 100755 (executable)
index 0000000..dbdbc16
--- /dev/null
@@ -0,0 +1,85 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#     *
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |         \
+#     |           \
+#     |   * v3      \
+#     |   | \         \
+#     |   |   \         \
+#     |   |     \         \
+#     |   |       \        \
+#     |   |       /* v2      *
+#     |   |     /          /
+#     |   |   /          /
+#     |   | /          /
+#     |   *          /
+#     |     v1     /
+#     |          /
+#     |        /
+#     |      /
+#     |    /
+#     |  /
+#     |/
+#     *
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover -5 -5 ${z2} 10 10 ${z2} -5 20 ${z2} -5 -5 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_4} $calcul $type }
+
+
+set square 2011.91
+
+set nb_v_good 12
+set nb_e_good 18
+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 0
+set nb_shape_good 51
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_27 b/tests/bugs/modalg/bug5805_27
new file mode 100755 (executable)
index 0000000..909933b
--- /dev/null
@@ -0,0 +1,85 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#     *
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |         \
+#     |           \
+#     |   * v3      \
+#     |   | \         \
+#     |   |   \         \
+#     |   |     \         \
+#     |   |       \        \
+#     |   |       /* v2      *
+#     |   |     /          /
+#     |   |   /          /
+#     |   | /          /
+#     |   *          /
+#     |     v1     /
+#     |          /
+#     |        /
+#     |      /
+#     |    /
+#     |  /
+#     |/
+#     *
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover -5 -5 ${z2} 10 10 ${z2} -5 20 ${z2} -5 -5 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_5} $calcul $type }
+
+
+set square 1755.54
+
+set nb_v_good 12
+set nb_e_good 18
+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 0
+set nb_shape_good 51
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_28 b/tests/bugs/modalg/bug5805_28
new file mode 100755 (executable)
index 0000000..19fa61a
--- /dev/null
@@ -0,0 +1,85 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#     *
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |         \
+#     |           \
+#     |   * v3      \
+#     |   | \         \
+#     |   |   \         \
+#     |   |     \         \
+#     |   |       \        \
+#     |   |       /* v2      *
+#     |   |     /          /
+#     |   |   /          /
+#     |   | /          /
+#     |   *          /
+#     |     v1     /
+#     |          /
+#     |        /
+#     |      /
+#     |    /
+#     |  /
+#     |/
+#     *
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover -5 -5 ${z2} 10 10 ${z2} -5 20 ${z2} -5 -5 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_4 s_5} $calcul $type }
+
+
+set square 1735.06
+
+set nb_v_good 12
+set nb_e_good 18
+set nb_w_good 10
+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 50
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_29 b/tests/bugs/modalg/bug5805_29
new file mode 100755 (executable)
index 0000000..41dfb04
--- /dev/null
@@ -0,0 +1,63 @@
+puts "============"
+puts "OCC5805"
+puts "OCC7582"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+# Bad result of offset operation
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 30
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 5829.59
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_30 b/tests/bugs/modalg/bug5805_30
new file mode 100755 (executable)
index 0000000..07c9a55
--- /dev/null
@@ -0,0 +1,63 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 30
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 1336.75
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_31 b/tests/bugs/modalg/bug5805_31
new file mode 100755 (executable)
index 0000000..033e89c
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 30
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 7157.43
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_32 b/tests/bugs/modalg/bug5805_32
new file mode 100755 (executable)
index 0000000..fce6ed8
--- /dev/null
@@ -0,0 +1,66 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "OCC7582"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+# Bad result of offset operation
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 30
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+
+
+set square 1223.65
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_33 b/tests/bugs/modalg/bug5805_33
new file mode 100755 (executable)
index 0000000..b256334
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set x1 10
+set x2 -10
+
+# ellipse1
+ellipse ell1 ${x1} 0 0 1 0 0 5 3
+mkedge ee1 ell1
+wire UpCover ee1
+
+# ellipse2
+ellipse ell2 ${x2} 0 0 1 0 0 4 2
+mkedge ee2 ell2
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 418.388
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_34 b/tests/bugs/modalg/bug5805_34
new file mode 100755 (executable)
index 0000000..4077edd
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set x1 10
+set x2 -10
+
+# ellipse1
+ellipse ell1 ${x1} 0 0 1 0 0 5 3
+mkedge ee1 ell1
+wire UpCover ee1
+
+# ellipse2
+ellipse ell2 ${x2} 0 0 1 0 0 4 2
+mkedge ee2 ell2
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 881.591
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_35 b/tests/bugs/modalg/bug5805_35
new file mode 100755 (executable)
index 0000000..5cc0100
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set x1 10
+set x2 -10
+
+# ellipse1
+ellipse ell1 ${x1} 0 0 1 0 0 5 3
+mkedge ee1 ell1
+wire UpCover ee1
+
+# ellipse2
+ellipse ell2 ${x2} 0 0 1 0 0 4 2
+mkedge ee2 ell2
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 915.469
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_36 b/tests/bugs/modalg/bug5805_36
new file mode 100755 (executable)
index 0000000..f2722cc
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set x1 10
+set x2 -10
+
+# ellipse1
+ellipse ell1 ${x1} 0 0 1 0 0 5 3
+mkedge ee1 ell1
+wire UpCover ee1
+
+# ellipse2
+ellipse ell2 ${x2} 0 0 1 0 0 4 2
+mkedge ee2 ell2
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+
+
+set square 856.92
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_37 b/tests/bugs/modalg/bug5805_37
new file mode 100755 (executable)
index 0000000..20716b3
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 6 0 ${z1} 6 6 ${z1} 0 6 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 3 -2 ${z2} 8 3 ${z2} 3 8 ${z2} -2 3 ${z2} 3 -2 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 246.821
+
+set nb_v_good 8
+set nb_e_good 12
+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 0
+set nb_shape_good 34
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_38 b/tests/bugs/modalg/bug5805_38
new file mode 100755 (executable)
index 0000000..2d746c5
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 6 0 ${z1} 6 6 ${z1} 0 6 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 3 -2 ${z2} 8 3 ${z2} 3 8 ${z2} -2 3 ${z2} 3 -2 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_5} $calcul $type }
+
+
+set square 544.931
+
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 65
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_39 b/tests/bugs/modalg/bug5805_39
new file mode 100755 (executable)
index 0000000..73bfe2d
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 6 0 ${z1} 6 6 ${z1} 0 6 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 3 -2 ${z2} 8 3 ${z2} 3 8 ${z2} -2 3 ${z2} 3 -2 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_6} $calcul $type }
+
+
+set square 524.758
+
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 65
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_40 b/tests/bugs/modalg/bug5805_40
new file mode 100755 (executable)
index 0000000..881e003
--- /dev/null
@@ -0,0 +1,74 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#                    v12                   v11
+#                    *---------------------*
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    |                     |
+#                    *---------------------*
+#                    v13                   v14
+#
+
+set z1 5
+set z2 -5
+
+# quadrangle1
+polyline UpCover 0 0 ${z1} 6 0 ${z1} 6 6 ${z1} 0 6 ${z1} 0 0 ${z1}
+
+# quadrangle2
+polyline BottomCover 3 -2 ${z2} 8 3 ${z2} 3 8 ${z2} -2 3 ${z2} 3 -2 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_5 s_6} $calcul $type }
+
+
+set square 485.358
+
+set nb_v_good 16
+set nb_e_good 24
+set nb_w_good 12
+set nb_f_good 10
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 64
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_41 b/tests/bugs/modalg/bug5805_41
new file mode 100755 (executable)
index 0000000..94fdf3b
--- /dev/null
@@ -0,0 +1,67 @@
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+puts "TODO OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC11111 ALL: Faulty OCC5805 : result is not Closed shape"
+puts "TODO ?OCC11111 ALL: Error : The command is not valid"
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+beziercurve bc2 5 4 4 ${z2} 4 -4 ${z2} -4 -4 ${z2} -4 4 ${z2} 4 4 ${z2}
+mkedge e2 bc2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {} $calcul $type }
+# Null result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_42 b/tests/bugs/modalg/bug5805_42
new file mode 100755 (executable)
index 0000000..cfb897c
--- /dev/null
@@ -0,0 +1,67 @@
+puts "TODO ?OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO ?OCC11111 ALL: Faulty OCC5805 : result is not Closed shape"
+puts "TODO ?OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC11111 ALL: Error : The command is not valid."
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+beziercurve bc2 5 4 4 ${z2} 4 -4 ${z2} -4 -4 ${z2} -4 4 ${z2} 4 4 ${z2}
+mkedge e2 bc2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+# Bad result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_43 b/tests/bugs/modalg/bug5805_43
new file mode 100755 (executable)
index 0000000..f44273a
--- /dev/null
@@ -0,0 +1,68 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+puts "TODO ?OCC11111 ALL: Error : Result shape is WRONG"
+puts "TODO ?OCC11111 ALL: Faulty OCC5805 : result is not Closed shape"
+puts "TODO ?OCC11111 ALL: Error : The command is not valid."
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+puts "TODO ?OCC11111 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+beziercurve bc2 5 4 4 ${z2} 4 -4 ${z2} -4 -4 ${z2} -4 4 ${z2} 4 4 ${z2}
+mkedge e2 bc2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+# Bad result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_44 b/tests/bugs/modalg/bug5805_44
new file mode 100755 (executable)
index 0000000..93484c7
--- /dev/null
@@ -0,0 +1,64 @@
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 5
+set z2 -5
+
+# beziercurve1
+beziercurve bc1 5 5 5 ${z1} 5 -5 ${z1} -5 -5 ${z1} -5 5 ${z1} 5 5 ${z1}
+mkedge e1 bc1
+wire UpCover e1
+
+# beziercurve2
+beziercurve bc2 5 4 4 ${z2} 4 -4 ${z2} -4 -4 ${z2} -4 4 ${z2} 4 4 ${z2}
+mkedge e2 bc2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.001
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+# Bad result
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_45 b/tests/bugs/modalg/bug5805_45
new file mode 100755 (executable)
index 0000000..e85305a
--- /dev/null
@@ -0,0 +1,59 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+tscale e2 0 0 0 2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 754.039
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_46 b/tests/bugs/modalg/bug5805_46
new file mode 100755 (executable)
index 0000000..b93c41c
--- /dev/null
@@ -0,0 +1,59 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+tscale e2 0 0 0 2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 1470.32
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_47 b/tests/bugs/modalg/bug5805_47
new file mode 100755 (executable)
index 0000000..7d985b5
--- /dev/null
@@ -0,0 +1,60 @@
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+cpulimit 8000
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+tscale e2 0 0 0 2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 1511.4
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_48 b/tests/bugs/modalg/bug5805_48
new file mode 100755 (executable)
index 0000000..267c657
--- /dev/null
@@ -0,0 +1,60 @@
+puts "TODO ?OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC5805"
+puts "============"
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+cpulimit 8000
+set BugNumber OCC5805
+
+# pbsplinecurve1
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire UpCover e1
+
+# pbsplinecurve1
+copy e1 e2
+ttranslate e2 0 0 20
+tscale e2 0 0 0 2
+wire BottomCover e2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.1
+catch { OFFSETSHAPE $distance {s_3 s_2} $calcul $type }
+
+
+set square 1451.05
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_49 b/tests/bugs/modalg/bug5805_49
new file mode 100755 (executable)
index 0000000..a9287d3
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pcone
+pcone s 30 5 20
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 5829.59
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_50 b/tests/bugs/modalg/bug5805_50
new file mode 100755 (executable)
index 0000000..53dbd0e
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pcone
+pcone s 30 5 20
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 12150
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_51 b/tests/bugs/modalg/bug5805_51
new file mode 100755 (executable)
index 0000000..10e2c0b
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pcone
+pcone s 30 5 20
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 7157.43
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_52 b/tests/bugs/modalg/bug5805_52
new file mode 100755 (executable)
index 0000000..b18bfd9
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# pcone
+pcone s 30 5 20
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+
+
+set square 7051.59
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_53 b/tests/bugs/modalg/bug5805_53
new file mode 100755 (executable)
index 0000000..c777675
--- /dev/null
@@ -0,0 +1,71 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#         * v3
+#         | \
+#         |   \
+#         |     \
+#         |       \
+#         |       /* v2
+#         |     /
+#         |   /
+#         | /
+#         *
+#           v1
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover 0 0 ${z2} 5 5 ${z2} 0 10 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_4} $calcul $type }
+
+
+set square 889.96
+
+set nb_v_good 12
+set nb_e_good 18
+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 0
+set nb_shape_good 51
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_54 b/tests/bugs/modalg/bug5805_54
new file mode 100755 (executable)
index 0000000..d2ff51c
--- /dev/null
@@ -0,0 +1,71 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#         * v3
+#         | \
+#         |   \
+#         |     \
+#         |       \
+#         |       /* v2
+#         |     /
+#         |   /
+#         | /
+#         *
+#           v1
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover 0 0 ${z2} 5 5 ${z2} 0 10 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 376.733
+
+set nb_v_good 6
+set nb_e_good 9
+set nb_w_good 5
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 27
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_55 b/tests/bugs/modalg/bug5805_55
new file mode 100755 (executable)
index 0000000..23ee9cd
--- /dev/null
@@ -0,0 +1,71 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#         * v3
+#         | \
+#         |   \
+#         |     \
+#         |       \
+#         |       /* v2
+#         |     /
+#         |   /
+#         | /
+#         *
+#           v1
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover 0 0 ${z2} 5 5 ${z2} 0 10 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_5} $calcul $type }
+
+
+set square 889.96
+
+set nb_v_good 12
+set nb_e_good 18
+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 0
+set nb_shape_good 51
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_56 b/tests/bugs/modalg/bug5805_56
new file mode 100755 (executable)
index 0000000..9bd6163
--- /dev/null
@@ -0,0 +1,71 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+#
+#         * v3
+#         | \
+#         |   \
+#         |     \
+#         |       \
+#         |       /* v2
+#         |     /
+#         |   /
+#         | /
+#         *
+#           v1
+#
+
+set z1 10
+set z2 -10
+
+# triangle1
+polyline UpCover 0 0 ${z1} 5 5 ${z1} 0 10 ${z1} 0 0 ${z1}
+
+# triangle2
+polyline BottomCover 0 0 ${z2} 5 5 ${z2} 0 10 ${z2} 0 0 ${z2}
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_4 s_5} $calcul $type }
+
+
+set square 870.345
+
+set nb_v_good 12
+set nb_e_good 18
+set nb_w_good 10
+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 50
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_57 b/tests/bugs/modalg/bug5805_57
new file mode 100755 (executable)
index 0000000..7cb0549
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 5
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 664.447
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_58 b/tests/bugs/modalg/bug5805_58
new file mode 100755 (executable)
index 0000000..1ed9814
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 5
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2} $calcul $type }
+
+
+set square 1336.75
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_7 b/tests/bugs/modalg/bug5805_7
new file mode 100755 (executable)
index 0000000..12d0c00
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 5
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_3} $calcul $type }
+
+
+set square 1336.75
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 6
+set nb_f_good 5
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 23
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_8 b/tests/bugs/modalg/bug5805_8
new file mode 100755 (executable)
index 0000000..06b73e6
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+set z1 10
+set z2 -10
+
+# circle1
+circle c1 0 0 ${z1} 5
+mkedge ec1 c1
+wire UpCover ec1
+
+# circle2
+circle c2 0 0 ${z2} 5
+mkedge ec2 c2
+wire BottomCover ec2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
+
+
+set square 1223.65
+
+set nb_v_good 4
+set nb_e_good 6
+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 22
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug5805_9 b/tests/bugs/modalg/bug5805_9
new file mode 100755 (executable)
index 0000000..b320e42
--- /dev/null
@@ -0,0 +1,58 @@
+puts "============"
+puts "OCC5805"
+puts "============"
+
+#######################################################################
+# BRepOffsetAPI_MakeThickSolid behaves unstably and produces very different results.
+#######################################################################
+
+set BugNumber OCC5805
+
+# ellipse1
+ellipse ell 10 0 0 1 0 0 5 3
+mkedge ee1 ell
+wire UpCover ee1
+
+# ellipse2
+copy ee1 ee2
+ttranslate ee2 -20 0 0
+wire BottomCover ee2
+
+set issolid 1
+set isruled 1
+if [catch { thrusections s ${issolid} ${isruled} UpCover BottomCover } catch_result] {
+   puts "Faulty ${BugNumber} : thrusections is wrong"
+   
+}
+
+set distance -0.5
+catch { OFFSETSHAPE $distance {} $calcul $type }
+
+
+set square 495.635
+
+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 0
+set nb_shape_good 13
+
+
+set index [lsearch [whatis s] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : s is not Closed shape"
+  
+}
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug11081_1 b/tests/bugs/moddata/bug11081_1
new file mode 100755 (executable)
index 0000000..961bdb3
--- /dev/null
@@ -0,0 +1,28 @@
+puts "========================"
+puts "OCC11081"
+puts "========================"
+puts ""
+#######################################################################
+# BRepExtrema_DistShapeShape misses one of two solutions
+#######################################################################
+
+set BugNumber OCC11081
+
+# infinite line is used
+
+line ll 6834.93 -4100 500 0 0 1
+mkedge ee ll
+restore [locate_data_file OCC11081.brep] section4100
+distmini dd ee section4100
+set res_list [distmini dd ee section4100]
+set res_length [llength ${res_list}]
+puts "res_length = ${res_length}"
+
+# Resume
+puts ""
+if { ${res_length} != 3 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug11081_2 b/tests/bugs/moddata/bug11081_2
new file mode 100755 (executable)
index 0000000..5e3fbad
--- /dev/null
@@ -0,0 +1,27 @@
+puts "========================"
+puts "OCC11081"
+puts "========================"
+puts ""
+#######################################################################
+# BRepExtrema_DistShapeShape misses one of two solutions
+#######################################################################
+
+set BugNumber OCC11081
+
+# finite line is used
+
+line ll 6834.93 -4100 500 0 0 1
+trim trll ll -1000 -500
+mkedge tree trll
+restore [locate_data_file OCC11081.brep] section4100
+set res_list [distmini dd tree section4100]
+set res_length [llength ${res_list}]
+puts "res_length = ${res_length}"
+
+# Resume
+puts ""
+if { ${res_length} != 3 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/moddata/bug12522 b/tests/bugs/moddata/bug12522
new file mode 100755 (executable)
index 0000000..70bfcb5
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO ?OCC12345 ALL: OCC12522: Faulty"
+
+puts "========"
+puts "OCC12522"
+puts "========"
+puts ""
+###########################################################
+# Extrema problems. Case: one of the Extrema arguments is an infinite face or an infinite edge.
+###########################################################
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+set BugNumber OCC12522
+
+restore [locate_data_file OCC12522.brep] arc1
+explode arc1 e
+mkcurve curve1 arc1_1
+
+plane plane1 6400 -4000 -160 0 0 1 1 0 0
+
+extrema curve1 plane1
+
+set percent_max 0.1
+set good_length 8.3705138910905177
+
+set ext_1_length [lindex [length ext_1] 4]
+
+set length_percent [GetPercent ${ext_1_length} ${good_length}]
+puts "length_percent = ${length_percent}"
+
+if {${length_percent} > ${percent_max}} {
+   puts "${BugNumber}: Faulty"
+} else {
+   puts "${BugNumber}: OK"
+}
diff --git a/tests/bugs/moddata/bug12635_1 b/tests/bugs/moddata/bug12635_1
new file mode 100755 (executable)
index 0000000..a5ecc0e
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC12635"
+puts "============"
+puts ""
+#######################################################################
+# Bugs in projector algorithm
+#######################################################################
+
+set BugNumber OCC12635
+
+restore [locate_data_file OCC12635_s1.draw] s1
+restore [locate_data_file OCC12635_c1.draw] c1
+
+set BugStatus 0
+if [catch { project result c1 s1 } ] {
+    set BugStatus 1
+}
+
+# Resume
+puts ""
+if { ${BugStatus} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/moddata/bug12635_2 b/tests/bugs/moddata/bug12635_2
new file mode 100755 (executable)
index 0000000..161f079
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC12635"
+puts "============"
+puts ""
+#######################################################################
+# Bugs in projector algorithm
+#######################################################################
+
+set BugNumber OCC12635
+
+restore [locate_data_file OCC12635_s6.draw] s6
+restore [locate_data_file OCC12635_c18.draw] c18
+
+set BugStatus 0
+if [catch { project result c18 s6 } ] {
+    set BugStatus 1
+}
+
+# Resume
+puts ""
+if { ${BugStatus} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/moddata/bug12884 b/tests/bugs/moddata/bug12884
new file mode 100755 (executable)
index 0000000..8f8aec2
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC12884"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of projection curve on surface
+#######################################################################
+
+set BugNumber OCC12884
+
+restore [locate_data_file OCC12884_s2.draw] s2
+restore [locate_data_file OCC12884_c1.draw] c1
+
+set BugStatus 0
+if [catch { project result c1 s2 } ] {
+    set BugStatus 1
+}
+
+# Resume
+puts ""
+if { ${BugStatus} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/moddata/bug12888 b/tests/bugs/moddata/bug12888
new file mode 100755 (executable)
index 0000000..e251f8e
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC12888"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result of projection curve on surface
+#######################################################################
+
+set BugNumber OCC12888
+
+restore [locate_data_file OCC12888_s1.draw] s1
+restore [locate_data_file OCC12888_c2.draw] c2
+
+set BugStatus 0
+if [catch { project result c2 s1 } ] {
+    set BugStatus 1
+}
+
+# Resume
+puts ""
+if { ${BugStatus} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
+
diff --git a/tests/bugs/moddata/bug13904 b/tests/bugs/moddata/bug13904
new file mode 100755 (executable)
index 0000000..0438bc2
--- /dev/null
@@ -0,0 +1,33 @@
+puts "==========="
+puts "OCC13904"
+puts "==========="
+######################################################
+# Exception during "filling" operation
+######################################################
+
+set BugNumber OCC13904
+
+circle c 0 100 100 0 1 1 50
+ellipse el 0 0 0 0 1 1 100 50
+
+set  mistake 0
+if [catch { appsurf result c el } res] {
+  set  mistake 1
+  puts "Faulty ${BugNumber}: filling problem"
+} else {
+  puts "Filling ${BugNumber}  OK"
+  set What [whatis result]
+  if { [regexp "surface" $What] != 1 } {
+    set  mistake 1
+  } else {
+    set  mistake 0
+  }
+}
+
+# Resume
+puts ""
+if { ${mistake} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/moddata/bug14376 b/tests/bugs/moddata/bug14376
new file mode 100755 (executable)
index 0000000..539d7a4
--- /dev/null
@@ -0,0 +1,13 @@
+puts "============"
+puts "OCC14376"
+puts "============"
+puts ""
+#######################################################################
+# Shading triangulation of face is not computed
+#######################################################################
+
+pload QAcommands
+
+restore [locate_data_file OCC14376.brep] Face_8
+OCC14376 Face_8
+
diff --git a/tests/bugs/moddata/bug14782 b/tests/bugs/moddata/bug14782
new file mode 100755 (executable)
index 0000000..c10128b
--- /dev/null
@@ -0,0 +1,76 @@
+puts "========================"
+puts "OCC14782"
+puts "========================"
+puts ""
+#######################################################################
+# Method segment works wrongly for periodical BSpline curve
+#######################################################################
+
+set BugNumber OCC14782
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+
+restore [locate_data_file OCC14782.draw] res
+
+bounds res t1 t2
+set bounds_list [dump res]
+
+puts ""
+if { [llength ${bounds_list}] < 7 } {
+   puts "Bad bounds_list"
+   puts "Faulty ${BugNumber}"
+} else {
+   set periodic_type [lindex ${bounds_list} 6]
+   puts "periodic_type=${periodic_type}"
+   if { ${periodic_type} != "periodic" } {
+      puts "1. Faulty ${BugNumber}"
+   } else {
+      puts "1. OK ${BugNumber}"
+   }
+}
+
+set ll1 [lindex [length res] end]
+puts "length1=${ll1}"
+
+segment res t3 t4
+set segment_list [dump res]
+
+puts ""
+if { [llength ${segment_list}] < 7 } {
+   puts "Bad segment_list"
+   puts "Faulty ${BugNumber}"
+} else {
+   set periodic_type [lindex ${segment_list} 6]
+   puts "periodic_type=${periodic_type}"
+   if { ${periodic_type} != "periodic" } {
+      puts "2. OK ${BugNumber}"
+   } else {
+      puts "2. Faulty ${BugNumber}"
+   }
+}
+
+set ll2 [lindex [length res] end]
+puts "length2=${ll2}"
+
+set percent_max 0.1
+set length_percent [GetPercent ${ll1} ${ll2}]
+puts "length_percent = ${length_percent}"
+
+puts ""
+if { ${length_percent} > ${percent_max} } {
+   puts "3. Faulty ${BugNumber}"
+} else {
+   puts "3. OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug15519 b/tests/bugs/moddata/bug15519
new file mode 100755 (executable)
index 0000000..b705004
--- /dev/null
@@ -0,0 +1,86 @@
+puts "TODO OCC12345 ALL: triangle: Faulty OCC15519"
+puts "TODO OCC12345 ALL: node: Faulty OCC15519"
+puts "TODO OCC12345 ALL: deflection: Faulty OCC15519"
+puts "TODO OCC12345 ALL: Faulty OCC15519"
+puts "============"
+puts "OCC15519"
+puts "============"
+puts ""
+#######################################################################
+# Exception while meshing shape
+#######################################################################
+
+set BugNumber OCC15519
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+restore [locate_data_file OCC15519.brep] result
+tclean result
+
+set Deflection 1.
+catch {incmesh result ${Deflection} }
+
+set InfoList [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $InfoList full tri
+regexp { +([-0-9.+eE]+) +nodes} $InfoList full nod
+regexp {Maximal deflection +([-0-9.+eE]+)} $InfoList full defl
+
+if { [string compare $tcl_platform(platform) "windows"] == 0 }  {
+   set good_tri  96265
+   set good_nod  71339
+   set good_defl 27.956052399907215
+} else {
+   set good_tri  95582
+   set good_nod  70796
+   set good_defl 0.99827404224216676
+}
+
+set percent_max 0.1
+set status 0
+
+set triangle_percent [GetPercent ${tri} ${good_tri}]
+puts "triangle_percent = ${triangle_percent}"
+if { ${triangle_percent} > ${percent_max} } {
+   puts "triangle: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "triangle: OK ${BugNumber}"
+}
+
+set node_percent [GetPercent ${nod} ${good_nod}]
+puts "node_percent = ${node_percent}"
+if { ${node_percent} > ${percent_max} } {
+   puts "node: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "node: OK ${BugNumber}"
+}
+
+set deflection_percent [GetPercent ${defl} ${good_defl}]
+puts "deflection_percent = ${deflection_percent}"
+if { ${deflection_percent} > ${percent_max} } {
+   puts "deflection: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "deflection: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug15570 b/tests/bugs/moddata/bug15570
new file mode 100755 (executable)
index 0000000..808fe6e
--- /dev/null
@@ -0,0 +1,108 @@
+puts "==========="
+puts "OCC15570"
+puts "==========="
+
+set BugNumber OCC15570
+
+######################################################
+# Incorrect handling of Unicode strings
+######################################################
+
+pload XDE
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+igesbrep [locate_data_file OCC15570.igs] a *
+tpcompound result
+
+set BoundList [boundingstr result]
+set xmin [lindex ${BoundList} 0]
+set ymin [lindex ${BoundList} 1]
+set zmin [lindex ${BoundList} 2]
+set xmax [lindex ${BoundList} 3]
+set ymax [lindex ${BoundList} 4]
+set zmax [lindex ${BoundList} 5]
+
+set percent_max 0.1
+set good_xmin -22.500000100000001
+set good_ymin -88.366946209482094
+set good_zmin -1.0000002775557561e-07
+set good_xmax 22.500000100000001
+set good_ymax 22.776076069021901
+set good_zmax 86.12676222997429
+set status 0
+
+set xmin_percent [GetPercent ${xmin} ${good_xmin}]
+puts "xmin_percent = ${xmin_percent}"
+if { ${xmin_percent} > ${percent_max} } {
+   puts "xmin: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "xmin: OK ${BugNumber}"
+}
+
+set ymin_percent [GetPercent ${ymin} ${good_ymin}]
+puts "ymin_percent = ${ymin_percent}"
+if { ${ymin_percent} > ${percent_max} } {
+   puts "ymin: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "ymin: OK ${BugNumber}"
+}
+
+set zmin_percent [GetPercent ${zmin} ${good_zmin}]
+puts "zmin_percent = ${zmin_percent}"
+if { ${zmin_percent} > ${percent_max} } {
+   puts "zmin: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "zmin: OK ${BugNumber}"
+}
+
+set xmax_percent [GetPercent ${xmax} ${good_xmax}]
+puts "xmax_percent = ${xmax_percent}"
+if { ${xmax_percent} > ${percent_max} } {
+   puts "xmax: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "xmax: OK ${BugNumber}"
+}
+
+set ymax_percent [GetPercent ${ymax} ${good_ymax}]
+puts "ymax_percent = ${ymax_percent}"
+if { ${ymax_percent} > ${percent_max} } {
+   puts "ymax: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "ymax: OK ${BugNumber}"
+}
+
+set zmax_percent [GetPercent ${zmax} ${good_zmax}]
+puts "zmax_percent = ${zmax_percent}"
+if { ${zmax_percent} > ${percent_max} } {
+   puts "zmax: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "zmax: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/moddata/bug16119 b/tests/bugs/moddata/bug16119
new file mode 100755 (executable)
index 0000000..a72a779
--- /dev/null
@@ -0,0 +1,61 @@
+puts "TODO ?OCC12345 ALL: OCC16119: Faulty"
+puts "============"
+puts "OCC16119"
+puts "============"
+puts ""
+#######################################################################
+# Bug in GeomFill_Coons algorithm
+#######################################################################
+
+set BugNumber OCC16119
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+restore [locate_data_file OCC16119-c1.draw] c1
+restore [locate_data_file OCC16119-c2.draw] c2
+restore [locate_data_file OCC16119-c31.draw] c31
+restore [locate_data_file OCC16119-c32.draw] c32
+restore [locate_data_file OCC16119-c41.draw] c41
+restore [locate_data_file OCC16119-c42.draw] c42
+restore [locate_data_file OCC16119-cv.draw] cv
+
+fillcurves s11 c1 c41 cv c31
+fillcurves s12 cv c42 c2 c32
+
+svalue s11 .5 .5 x1 y1 z1 dux1 duy1 duz1 dvx1 dvy1 dvz1
+svalue s12 .5 .5 x2 y2 z2 dux2 duy2 duz2 dvx2 dvy2 dvz2
+
+set deltaX [dval dvx1-dvx2]
+set deltaY [dval dvy1-dvy2]
+set deltaZ [dval dvz1-dvz2]
+
+set percent_max 0.1
+set good_deltaX 4.4408920985006262e-015
+set good_deltaY -4.6629367034256575e-015
+set good_deltaZ -2.6645352591003757e-015
+
+set deltaX_percent [GetPercent ${deltaX} ${good_deltaX}]
+puts "deltaX_percent = ${deltaX_percent}"
+
+set deltaY_percent [GetPercent ${deltaY} ${good_deltaY}]
+puts "deltaY_percent = ${deltaY_percent}"
+
+set deltaZ_percent [GetPercent ${deltaZ} ${good_deltaZ}]
+puts "deltaZ_percent = ${deltaZ_percent}"
+
+if {${deltaX_percent} > ${percent_max} || ${deltaY_percent} > ${percent_max} || ${deltaZ_percent} > ${percent_max} } {
+   puts "${BugNumber}: Faulty"
+} else {
+   puts "${BugNumber}: OK"
+}
+
diff --git a/tests/bugs/moddata/bug16833 b/tests/bugs/moddata/bug16833
new file mode 100755 (executable)
index 0000000..d3e0046
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC16833"
+puts "============"
+puts ""
+#######################################################################
+# Error in Coons algorithm
+#######################################################################
+
+set BugNumber OCC16833
+
+restore [locate_data_file OCC16833-c1.draw] c1
+restore [locate_data_file OCC16833-c2.draw] c2
+restore [locate_data_file OCC16833-c3.draw] c3
+restore [locate_data_file OCC16833-c4.draw] c4
+
+set  mistake 0
+if [catch { fillcurves result c1 c2 c3 c4 } res] {
+  set  mistake 1
+  puts "Faulty ${BugNumber}: filling problem"
+} else {
+  puts "Filling ${BugNumber}  OK"
+  set What [whatis result]
+  if { [regexp "surface" $What] != 1 } {
+    set  mistake 1
+  } else {
+    set  mistake 0
+  }
+}
+
+# Resume
+puts ""
+if { ${mistake} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug17046 b/tests/bugs/moddata/bug17046
new file mode 100755 (executable)
index 0000000..09c419e
--- /dev/null
@@ -0,0 +1,36 @@
+puts "============"
+puts "OCC17046"
+puts "============"
+puts ""
+#######################################################################
+# Exception in Extrema_ExtPS on Mandriva2006 32-bits
+#######################################################################
+
+set BugNumber OCC17046
+
+# Create ellipsoidal surface
+ellipse ell 0 0 300 1 0 0 150 100
+mkedge ell_e ell
+wire ell_w ell_e
+mkplane ell_f ell_w 1
+
+box ell_t -10 -110 140 20 110 460
+cut ell_d ell_f ell_t
+
+revol ell_z ell_d 0 0 0 0 0 1 360
+explode ell_z F
+mksurface su1 ell_z_1
+
+# Perform projection
+set BugStatus 0
+if [catch { proj su1 0 100 300 } ] {
+  set BugStatus 1
+}
+
+# Resume
+puts ""
+if { ${BugStatus} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/moddata/bug17424 b/tests/bugs/moddata/bug17424
new file mode 100755 (executable)
index 0000000..7fd3b47
--- /dev/null
@@ -0,0 +1,33 @@
+pload QAcommands
+
+puts "============"
+puts "OCC17424"
+puts "============"
+puts ""
+######################################################
+# IntCurvesFace_ShapeIntersector does not find intersection point
+######################################################
+
+set BugNumber OCC17424
+
+restore [locate_data_file OCC17424.brep] a 
+
+set X_Pnt 86.960439048069262
+set Y_Pnt 1028.2863798310484
+set Z_Pnt -266.58526583558000
+
+set X_Dir 0.25881904510252074
+set Y_Dir 0
+set Z_Dir -0.96592582628906831
+
+set PInf 0.
+
+set aStatusList [OCC17424 a ${X_Pnt} ${Y_Pnt} ${Z_Pnt} ${X_Dir} ${Y_Dir} ${Z_Dir} ${PInf}]
+regexp {OCC17424 status = +([-0-9.+eE]+)} ${aStatusList} full aStatus
+
+if { ${aStatus} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug18541_1 b/tests/bugs/moddata/bug18541_1
new file mode 100755 (executable)
index 0000000..df6d7a8
--- /dev/null
@@ -0,0 +1,30 @@
+puts "============"
+puts "OCC18541"
+puts "============"
+puts ""
+#######################################################################
+# Problem with GCPnts_UniformAbscissa class
+#######################################################################
+
+set BugNumber OCC18541
+
+restore [locate_data_file OCC18541.brep] b-curve
+
+set NbPoints 10
+
+mkcurve res b-curve
+
+set ResList [uniformAbscissa res ${NbPoints}]
+
+if {[llength ${ResList}] > 15} {
+   set CasCurve_NbPoints [lindex ${ResList} 15]
+   puts "NbPoints = ${NbPoints}   CasCurve_NbPoints = ${CasCurve_NbPoints}"
+   if { ${CasCurve_NbPoints} != ${NbPoints} } {
+      puts "Faulty ${BugNumber}"
+   } else {
+      puts "OK ${BugNumber}"
+   }
+} else {
+   puts "Faulty ${BugNumber} : Bad draw command"
+}
+
diff --git a/tests/bugs/moddata/bug18541_2 b/tests/bugs/moddata/bug18541_2
new file mode 100755 (executable)
index 0000000..5213f97
--- /dev/null
@@ -0,0 +1,27 @@
+puts "============"
+puts "OCC18541"
+puts "============"
+puts ""
+#######################################################################
+# Problem with GCPnts_UniformAbscissa class
+#######################################################################
+
+set BugNumber OCC18541
+
+set maxR 100
+set minR 50
+set NbPoints 10
+
+set ResList [uniformAbscissaEl ${maxR} ${minR} ${NbPoints}]
+
+if {[llength ${ResList}] > 15} {
+   set CasCurve_NbPoints [lindex ${ResList} 15]
+   puts "NbPoints = ${NbPoints}   CasCurve_NbPoints = ${CasCurve_NbPoints}"
+   if { ${CasCurve_NbPoints} != ${NbPoints} } {
+      puts "Faulty ${BugNumber}"
+   } else {
+      puts "OK ${BugNumber}"
+   }
+} else {
+   puts "Faulty ${BugNumber} : Bad draw command"
+}
diff --git a/tests/bugs/moddata/bug19777 b/tests/bugs/moddata/bug19777
new file mode 100755 (executable)
index 0000000..5a05df0
--- /dev/null
@@ -0,0 +1,27 @@
+puts "========"
+puts "OCC19777"
+puts "========"
+puts ""
+######################################################
+# FIP:Integration of new version of read/write VRML2.0 files 
+######################################################
+
+set BugNumber OCC19777
+
+if [catch { restore [locate_data_file OCC19777.brep] result} catch_result] { 
+  puts "Error ${BugNumber}: there is reading problem"
+} else {
+
+set nb_v_good 0
+set nb_e_good 0
+set nb_w_good 0
+set nb_f_good 1
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 1
+
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug20391 b/tests/bugs/moddata/bug20391
new file mode 100755 (executable)
index 0000000..1d1972d
--- /dev/null
@@ -0,0 +1,20 @@
+puts "============"
+puts "OCC20391"
+puts "============"
+puts ""
+#######################################################################
+# Shape deforming via 3 scale factors raises error.Appendix for IPAL20387
+#######################################################################
+
+set BugNumber OCC20391
+
+restore [locate_data_file bug19811_VanneMP_supports_tiges_V3.brep] a 
+
+if [catch {deform result a 2 2 2}] {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set square 2.71197e+07
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug20404 b/tests/bugs/moddata/bug20404
new file mode 100755 (executable)
index 0000000..b8b4ed7
--- /dev/null
@@ -0,0 +1,30 @@
+puts "========================"
+puts "OCC20404"
+puts "========================"
+puts ""
+#######################################################################
+# Command distmini gives wrong result for given shapes
+#######################################################################
+
+set BugNumber OCC20404
+
+restore [locate_data_file OCC20404-line1.brep] e1 
+restore [locate_data_file OCC20404-line2.brep] e2 
+
+distmini d e1 e2
+puts "Distance=[dval d_val]"
+
+if [expr [dval d_val] > 7.e-13] {
+   set status 1
+} else {
+   set status 0
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug20524 b/tests/bugs/moddata/bug20524
new file mode 100755 (executable)
index 0000000..ae86c3c
--- /dev/null
@@ -0,0 +1,22 @@
+puts "========================"
+puts "OCC20524"
+puts "========================"
+puts ""
+#######################################################################
+# Wrong intersection
+#######################################################################
+
+set BugNumber OCC20524
+
+restore [locate_data_file OCC20524-surf1.draw] surf1 
+restore [locate_data_file OCC20524-surf2.draw] surf2 
+
+intersect result surf1 surf2
+
+set che [whatis result]
+if { ![regexp {3d curve} $che] } {
+    puts "Faulty ${BugNumber}: command INTERSECT works wrongly"
+} else {
+  puts "${BugNumber} OK : command INTERSECT works properly"
+}
+
diff --git a/tests/bugs/moddata/bug20616 b/tests/bugs/moddata/bug20616
new file mode 100755 (executable)
index 0000000..257fed4
--- /dev/null
@@ -0,0 +1,34 @@
+puts "========================"
+puts "OCC20616"
+puts "========================"
+puts ""
+#######################################################################
+# Failed to save/restore [locate_data_file empty] face 
+#######################################################################
+
+set BugNumber OCC20616
+
+set mistake 0
+foreach t {V E W F Sh So CS C} {
+    puts "shape type $t"
+    shape test $t
+    if [catch {save test $imagedir/${test_image}.brep}] {
+        puts "Faulty ${BugNumber} save $t"
+        set mistake 1
+    } else {
+        puts "OK ${BugNumber} save $t"
+    }
+    if [catch {restore $imagedir/${test_image}.brep test}] { 
+       puts "Faulty ${BugNumber} restore $t"
+        set mistake 1
+    } else {
+    puts "OK ${BugNumber} restore $t"
+    }
+}
+
+if {${mistake} !=0} {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug20627 b/tests/bugs/moddata/bug20627
new file mode 100755 (executable)
index 0000000..a4fdba0
--- /dev/null
@@ -0,0 +1,27 @@
+pload QAcommands
+
+puts "========"
+puts "OCC20627"
+puts "========"
+puts ""
+#######################################################################
+# Memory leaks in BRepMesh
+#######################################################################
+
+set BugNumber OCC20627
+
+OCC20627 1
+
+set listmem {}
+set i_max 10000
+OCC20627 ${i_max}
+
+lappend listmem [expr [meminfo w] / 1024]
+if { [checktrend $listmem 0 1 "Memory leak detected"] } {
+    puts "No memory leak"
+    break
+}
+
+
+
+
diff --git a/tests/bugs/moddata/bug20683 b/tests/bugs/moddata/bug20683
new file mode 100755 (executable)
index 0000000..de23ef0
--- /dev/null
@@ -0,0 +1,31 @@
+puts "========================"
+puts "OCC20683"
+puts "Customer : TATA"
+puts "========================"
+puts ""
+#######################################################################
+# BRepExtrema_ExtCC produces incomplete result.
+#######################################################################
+
+set BugNumber OCC20683
+
+# finite line is used
+line ll 6834.93 -4100 500 0 0 1
+trim trll ll -1000 -500
+mkedge tree trll
+
+restore [locate_data_file OCC20683_circ1.brep] e1 
+restore [locate_data_file OCC20683_circ2.brep] e2 
+
+set res_list [distmini d e1 e2]
+set res_length [llength ${res_list}]
+puts "res_length = ${res_length}"
+
+# Resume
+puts ""
+if { ${res_length} != 3 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug20766 b/tests/bugs/moddata/bug20766
new file mode 100755 (executable)
index 0000000..41cc7a5
--- /dev/null
@@ -0,0 +1,34 @@
+pload QAcommands
+
+puts "============"
+puts "OCC20766"
+puts "============"
+puts ""
+#######################################################################
+# Intersection of cone with plane in apex point crashes
+#######################################################################
+
+set BugNumber OCC20766
+
+OCC20766 plane 1 0 0 3522.4299999999998
+
+set x -3522.4299999999998
+set y 2540
+set z -1461.4300000000001
+set dx 5449.7857099692965
+set dy 0
+set dz 5537.6938973109054
+set PI180 0.017453292519943295
+set semi-angle [expr 0.46689346637921703 / ${PI180}]
+set radius 0.
+
+cone c ${x} ${y} ${z} ${dx} ${dy} ${dz} ${semi-angle} ${radius}
+
+if [catch { intersect result plane c } ] {
+  puts "Faulty ${BugNumber} : intersect is wrong"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/moddata/bug20823 b/tests/bugs/moddata/bug20823
new file mode 100755 (executable)
index 0000000..32254fe
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "OCC20823"
+puts "============"
+puts ""
+#######################################################################
+# BRepFilletAPI_MakeFillet2d fails to build a chamfer
+#######################################################################
+
+set BugNumber OCC20823
+
+restore [locate_data_file OCC20823.brep] a 
+mkplane f a
+explode f e
+
+if [catch { chfi2d result f f_1 f_2 CDD 10. 10. } ] {
+  puts "Faulty ${BugNumber} : chfi2d is wrong"
+} else {
+set length 267.795
+
+set nb_v_good 4
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/moddata/bug20904_1 b/tests/bugs/moddata/bug20904_1
new file mode 100755 (executable)
index 0000000..bfb1812
--- /dev/null
@@ -0,0 +1,49 @@
+puts "============"
+puts "OCC20904"
+puts "============"
+puts ""
+#######################################################################
+# BRepBuilderAPI_Sewing produces a shape with big tolerance
+#######################################################################
+
+set BugNumber OCC20904
+
+restore [locate_data_file bug20904_face_bas.brep] a 
+
+set tolerance_in 1.e-6
+set tolerance_out ${tolerance_in}
+sewing result ${tolerance_in} a
+
+set tolerance_list [maxtolerance result]
+
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxFaceTolerance
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxEdgeTolerance
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxVertexTolerance
+
+set status 0
+
+if { ${MaxFaceTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Face Tolerance is bad"
+}
+
+if { ${MaxEdgeTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Edge Tolerance is bad"
+}
+
+if { ${MaxVertexTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Vertex Tolerance is bad"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set square 30078.9
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug20904_2 b/tests/bugs/moddata/bug20904_2
new file mode 100755 (executable)
index 0000000..1952c95
--- /dev/null
@@ -0,0 +1,48 @@
+puts "============"
+puts "OCC20904"
+puts "============"
+puts ""
+#######################################################################
+# BRepBuilderAPI_Sewing produces a shape with big tolerance
+#######################################################################
+
+set BugNumber OCC20904
+
+restore [locate_data_file bug20904_Shell_argument.brep] a 
+
+set tolerance_in 1.e-6
+set tolerance_out ${tolerance_in}
+sewing result ${tolerance_in} a
+
+set tolerance_list [maxtolerance result]
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxFaceTolerance
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxEdgeTolerance
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxVertexTolerance
+
+set status 0
+
+if { ${MaxFaceTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Face Tolerance is bad"
+}
+
+if { ${MaxEdgeTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Edge Tolerance is bad"
+}
+
+if { ${MaxVertexTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Vertex Tolerance is bad"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set square 1.33253e+06
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug20904_3 b/tests/bugs/moddata/bug20904_3
new file mode 100755 (executable)
index 0000000..00672d6
--- /dev/null
@@ -0,0 +1,49 @@
+puts "============"
+puts "OCC20904"
+puts "============"
+puts ""
+#######################################################################
+# BRepBuilderAPI_Sewing produces a shape with big tolerance
+#######################################################################
+
+set BugNumber OCC20904
+
+restore [locate_data_file bug20904_face_bas.brep] a 
+restore [locate_data_file bug20904_Shell_argument.brep] b 
+
+set tolerance_in 1.e-6
+set tolerance_out 1.e-5
+sewing result ${tolerance_in} a b
+
+set tolerance_list [maxtolerance result]
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxFaceTolerance
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxEdgeTolerance
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance_list full MaxVertexTolerance
+
+set status 0
+
+if { ${MaxFaceTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Face Tolerance is bad"
+}
+
+if { ${MaxEdgeTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Edge Tolerance is bad"
+}
+
+if { ${MaxVertexTolerance} > ${tolerance_out} } {
+  set status 1
+  puts "Max Vertex Tolerance is bad"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set square 1.36261e+06
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug21121 b/tests/bugs/moddata/bug21121
new file mode 100755 (executable)
index 0000000..6e51865
--- /dev/null
@@ -0,0 +1,89 @@
+puts "TODO OCC11111 ALL: Faulty OCC21121"
+puts "TODO OCC11111 ALL: Error : The square of result shape is"
+
+puts "============"
+puts "OCC21121"
+puts "============"
+puts ""
+#######################################################################
+# Triangulation on face is not built
+#######################################################################
+
+set BugNumber OCC21121
+
+restore [locate_data_file OCC21121.brep] result
+
+tclean result
+
+set Deflection 0.1
+catch {incmesh result ${Deflection} }
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+regexp {deflection +([-0-9.+eE]+)} $tri_info full defl
+
+if { [string compare $tcl_platform(platform) "windows"] == 0 }  {
+   puts "OS = Windows NT"
+   set good_tri  1555
+   set good_nod  1475
+   set good_defl 3.5015692105840144e-06
+} else {
+   puts "OS = Linux"
+   set good_tri  1555
+   set good_nod  1475
+   set good_defl 3.5015692105840144e-06
+}
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 0.1
+set status 0
+
+set triangle_percent [GetPercent ${tri} ${good_tri}]
+puts "triangle_percent = ${triangle_percent}"
+if { ${triangle_percent} > ${percent_max} } {
+   puts "triangle: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "triangle: OK ${BugNumber}"
+}
+
+set node_percent [GetPercent ${nod} ${good_nod}]
+puts "node_percent = ${node_percent}"
+if { ${node_percent} > ${percent_max} } {
+   puts "node: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "node: OK ${BugNumber}"
+}
+
+set deflection_percent [GetPercent ${defl} ${good_defl}]
+puts "deflection_percent = ${deflection_percent}"
+if { ${deflection_percent} > ${percent_max} } {
+   puts "deflection: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "deflection: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug21122 b/tests/bugs/moddata/bug21122
new file mode 100755 (executable)
index 0000000..cece00a
--- /dev/null
@@ -0,0 +1,104 @@
+puts "TODO OCC11111 ALL: Faulty OCC21122"
+
+puts "============"
+puts "OCC21122"
+puts "============"
+puts ""
+#######################################################################
+# Incremental mesh error
+#######################################################################
+
+set BugNumber OCC21122
+
+restore [locate_data_file OCC21122.brep] result
+
+tclean result
+
+set Deflection 0.1
+catch {incmesh result ${Deflection} }
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+regexp {Maximal deflection +([-0-9.+eE]+)} $tri_info full defl
+
+
+if { [string compare $tcl_platform(platform) "windows"] == 0 }  {
+   set good_tri  4322
+   set good_nod  4324
+   set good_defl 8.8817872205847652e-16
+   puts "OS = Windows NT"
+} else {
+   puts "OS = Linux"
+   set good_tri  4322
+   set good_nod  4324
+   set good_defl 8.8817872205847652e-16
+}
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+        set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 0.1
+set status 0
+
+set triangle_percent [GetPercent ${tri} ${good_tri}]
+puts "triangle_percent = ${triangle_percent}"
+if { ${triangle_percent} > ${percent_max} } {
+   puts "triangle: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "triangle: OK ${BugNumber}"
+}
+
+set node_percent [GetPercent ${nod} ${good_nod}]
+puts "node_percent = ${node_percent}"
+if { ${node_percent} > ${percent_max} } {
+   puts "node: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "node: OK ${BugNumber}"
+}
+
+set deflection_percent [GetPercent ${defl} ${good_defl}]
+puts "deflection_percent = ${deflection_percent}"
+if { ${deflection_percent} > ${percent_max} } {
+   puts "deflection: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "deflection: OK ${BugNumber}"
+}
+
+set square 275.426
+
+set nb_v_good 964
+set nb_e_good 964
+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 0
+set nb_shape_good 1931
+
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+set only_screen 1
+
diff --git a/tests/bugs/moddata/bug21292 b/tests/bugs/moddata/bug21292
new file mode 100755 (executable)
index 0000000..8da1da5
--- /dev/null
@@ -0,0 +1,66 @@
+puts "========"
+puts "OCC21292"
+puts "========"
+puts ""
+######################################################
+# Shading on large model too long
+######################################################
+
+set BugNumber OCC21292
+
+# 1 munite
+cpulimit 60
+
+restore [locate_data_file OCC21292.brep] result
+
+vinit
+vsetdispmode 1
+
+chrono h reset; chrono h start
+#
+# DISPLAY OPERATION ----- START
+#
+vdisplay result
+#
+# DISPLAY OPERATION ----- FINISH
+#
+chrono h stop; set CPU_time_List [chrono h show]
+
+set CPU_user_time [lindex ${CPU_time_List} 11]
+puts "CPU_user_time=${CPU_user_time}"
+
+
+set square 1.40193e+07
+set nb_v_good 372
+set nb_e_good 369
+set nb_w_good 2
+set nb_f_good 1
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 745
+
+
+if {[string compare $tcl_platform(platform) "windows"] == 0} {
+   puts "windows"
+   set Good_CPU_user_time 0.
+} else {
+   if {[string compare $tcl_platform(os) "SunOS"] == 0} {
+      puts "SunOS"
+      set Good_CPU_user_time 6.
+   } else {
+      puts "Linux"
+      set Good_CPU_user_time 6.
+   }
+}
+
+# Check time boolean operation
+if {${Good_CPU_user_time} > ${CPU_user_time}} {
+   puts "OK ${BugNumber} : CPU user time is good"
+} else {
+   puts "Faulty ${BugNumber} : CPU user time is wrong"
+}
+
+
+set only_screen 0
diff --git a/tests/bugs/moddata/bug21858 b/tests/bugs/moddata/bug21858
new file mode 100755 (executable)
index 0000000..e9a8b9e
--- /dev/null
@@ -0,0 +1,50 @@
+puts "============"
+puts "OCC21858"
+puts "============"
+puts ""
+####################################
+# Visualization hangs on this face ( OCC21858.brep )
+####################################
+
+set BugNumber OCC21858
+cpulimit 40
+restore [locate_data_file OCC21858.brep] result
+
+set length 6.48642
+
+set nb_v_good 9
+set nb_e_good 10
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 21
+
+set only_screen 0
+
+vinit
+vsetdispmode 1
+dchrono TestTimer reset
+dchrono TestTimer start
+vdisplay result
+dchrono TestTimer stop
+vfit
+puts ""
+set time_o 0.1
+set tim [ dchrono TestTimer show ]
+regexp {Elapsed time: +([-0-9.+eE]+) Hours +([-0-9.+eE]+) Minutes +([-0-9.+eE]+) Seconds} $tim full hourVDisplay minuVDisplay secoVDisplay
+
+set timVDisplay [expr $hourVDisplay * 3600 + $minuVDisplay * 60 + $secoVDisplay ]
+
+if { ${tim} < ${time_o} } {
+       set chro "CHRONO  : Faulty (${timVDisplay}%)"
+       set status 1
+       puts ${chro}
+} else {
+       puts "${BugNumber} OK"
+       set status 0
+}
+puts "timVDisplay = ${timVDisplay}"
+
diff --git a/tests/bugs/moddata/bug22043 b/tests/bugs/moddata/bug22043
new file mode 100755 (executable)
index 0000000..67764cc
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC22043"
+puts "============"
+puts ""
+#######################################################################
+# Checkshape command does not return faulty shapes for the face. CAS63-sp10-*. Appendix to SALOME bug 002019
+#######################################################################
+
+set BugNumber OCC22043
+
+puts "Load shape ..."
+restore [locate_data_file bug22043_f181.brep] result
+
+decho off
+set che [checkshape result]
+decho on
+
+if {[regexp {Faulty} $che]} {
+     puts "OK ${BugNumber} : The face f181 can not be valid because at least it contain self-intersected wire"
+} else {
+     puts "Faulty ${BugNumber} : The face f181 can not be valid because at least it contain self-intersected wire"
+}
+
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug22080 b/tests/bugs/moddata/bug22080
new file mode 100755 (executable)
index 0000000..bdf9f89
--- /dev/null
@@ -0,0 +1,26 @@
+puts "TODO OCC11111 ALL: Faulty OCC22080 : The face f contains degenerated edge that is far-fetched one"
+
+puts "============"
+puts "OCC22080"
+puts "============"
+puts ""
+#######################################################################
+# Checkshape command does not return faulty shapes for the face. CAS63-sp10-*. Appendix to SALOME bug IPAL22072
+#######################################################################
+
+set BugNumber OCC22080
+
+puts "Load shape ..."
+restore [locate_data_file bug22080_fx.brep] result
+
+decho off
+set che [checkshape result]
+decho on
+
+if {[regexp {Faulty} $che]} {
+     puts "OK ${BugNumber} : The face f contains degenerated edge that is far-fetched one"
+} else {
+     puts "Faulty ${BugNumber} : The face f contains degenerated edge that is far-fetched one"
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug22194 b/tests/bugs/moddata/bug22194
new file mode 100755 (executable)
index 0000000..d767394
--- /dev/null
@@ -0,0 +1,25 @@
+puts "TODO ?OCC12345 ALL: An exception was caught"
+puts "TODO ?OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO ?OCC12345 ALL: TEST INCOMPLETE"
+puts "============"
+puts "OCC22194"
+puts "============"
+puts ""
+#######################################################################
+# Exception in LocOpe_SplitShape algoritm
+#######################################################################
+
+# TEMPORARY TEST! NO COMPLITED!!!!!
+
+set BugNumber OCC22194
+
+restore [locate_data_file OCC22194-sh.brep] s 
+restore [locate_data_file OCC22194-pl.brep] pl 
+section r s pl
+explode r
+explode s F
+splitshape result s s_1 r_1 s_5 r_2 s_13 r_3 s_22 r_4 s_31 r_5 s_39 r_6 s_46 r_7 s_51 r_8 s_68 r_9 s_90 r_10 s_112 r_11 s_133 r_12 s_143 r_13 s_146 r_14 s_151 r_15 s_161 r_16 s_176 r_17 s_183 r_18 s_201 r_19 s_213 r_20 s_213 r_21 s_235 r_22 s_257 r_23 s_270 r_24 s_285 r_25 s_300 r_26 s_314 r_27
+set square 24549.6
+set 2dviewer 0
+
+
diff --git a/tests/bugs/moddata/bug22241 b/tests/bugs/moddata/bug22241
new file mode 100755 (executable)
index 0000000..13cac44
--- /dev/null
@@ -0,0 +1,51 @@
+puts "========"
+puts "OCC22241"
+puts "========"
+puts ""
+###########################################################
+# The bug is appendix to the Salome Bug 0021148
+###########################################################
+
+set BugNumber OCC22241
+
+restore [locate_data_file bug22241_c1.draw] c1 
+restore [locate_data_file bug22241_c2.draw] c2 
+
+set extrema_res [extrema c1 c2]
+set extrema_length [llength ${extrema_res} ]
+
+if {${extrema_length} < 8 } {
+   puts "${BugNumber}: Faulty"
+} else {
+    regexp {Extrema 1 is point : +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+)} $extrema_res full X Y Z
+   set good_X 1
+   set good_Y 3.0891916307971289e-33
+   set good_Z 0.059999999999999998
+
+  set percent_max 0.1
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+   set X_percent [GetPercent ${X} ${good_X}]
+   set Y_percent [GetPercent ${Y} ${good_Y}]
+   set Z_percent [GetPercent ${Z} ${good_Z}]
+
+   if {${X_percent} > ${percent_max} || ${Y_percent} > ${percent_max} || ${Z_percent} > ${percent_max}} {
+      puts "X = ${X} Y = ${Y} Z = ${Z}"
+      puts "X_percent = ${X_percent} Y_percent = ${Y_percent} Z_percent = ${Z_percent}"
+      puts "${BugNumber}: Faulty"
+   } else {
+      puts "${BugNumber}: OK"
+   }
+
+}
+
diff --git a/tests/bugs/moddata/bug22296 b/tests/bugs/moddata/bug22296
new file mode 100755 (executable)
index 0000000..8a4cf3d
--- /dev/null
@@ -0,0 +1,60 @@
+puts "============"
+puts "OCC22296"
+puts "============"
+puts ""
+#######################################################################
+# The algorithm BRepSweep_MakeRevol produce non-licit toroidal based face.
+#    Appendix to the SALOME bug: IPAL22181
+#######################################################################
+
+set BugNumber OCC22296
+
+restore [locate_data_file bug22296_ring.brep] b1 
+revol r b1 0.6 3 0 0 0 1 -90
+
+set E_Length [explode r f]
+
+if { ${E_Length} < 6} {
+   puts "Bad format of explode draw-command"
+   puts "Faulty ${BugNumber}"
+} else {
+
+   copy r_2 f
+
+   set good_umin 0
+   set good_umax 6.28319
+   set good_vmin 0
+   set good_vmax 6.28319
+
+   set xlist [xbounds f]
+   set umin [lindex $xlist 0]
+   set umax [lindex $xlist 1]
+   set vmin [lindex $xlist 2]
+   set vmax [lindex $xlist 3]
+
+   set bad_bound 0
+   if {${umin} < ${good_umin}} {
+      puts "umin: ${umin} is wrong"
+      set bad_bound[expr  ${bad_bound} + 1]    
+   }
+   if {${umax} > ${good_umax}} {
+      puts "umax: ${umax} is wrong"
+      set bad_bound [expr ${bad_bound} + 10]   
+   }
+   if {${vmin} < ${good_vmin}} {
+      puts "vmin: ${vmin} is wrong"
+      set bad_bound [expr ${bad_bound} + 100]  
+   }
+   if {${vmax} > ${good_vmax}} {
+      puts "vmax: ${vmax} is wrong"    
+      set bad_bound [expr ${bad_bound} + 1000]
+   }
+
+   if {${bad_bound} > 0 } {
+      puts "${BugNumber}: Faulty"
+   } else {
+      puts "OK ${BugNumber}"
+   }
+
+}
+
diff --git a/tests/bugs/moddata/bug22303 b/tests/bugs/moddata/bug22303
new file mode 100755 (executable)
index 0000000..49f865b
--- /dev/null
@@ -0,0 +1,31 @@
+puts "========================"
+puts "OCC22303"
+puts "========================"
+puts ""
+#######################################################################
+# The algorithm BRepExtrema_DistShapeShape crashes with exception if one of the shapes does non contain vertices
+#######################################################################
+
+set BugNumber OCC22303
+
+line ll 0 20 0  1 0 0
+mkedge ee ll
+psphere ss 10
+
+distmini dd ee ss
+puts "Distance=[dval dd_val]"
+
+if [expr [dval dd_val] - 10. > 1.e-3 ] {
+   set status 1
+} else {
+   set status 0
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug22489_1 b/tests/bugs/moddata/bug22489_1
new file mode 100755 (executable)
index 0000000..e498532
--- /dev/null
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC22489"
+puts "================"
+puts ""
+#######################################################################
+# BRepClass3d_SolidClassifier::PerformInfinitePoint() gives wrong result on the given solid 
+#######################################################################
+
+set BugNumber OCC22489
+
+restore [locate_data_file bug22489_Solid_2.brep] b 
+
+point p 1000 1000 1000
+
+set res [split [bclassify b p] ]
+
+set ll [llength ${res}]
+if {${ll} < 4} {
+   puts "Bad format of bclassify draw-command; Faulty ${BugNumber}"
+} else {
+   if {[regexp {The point is OUT of shape} $res]} {
+      puts "OK ${BugNumber}"
+   } else {
+      puts "Faulty ${BugNumber}"
+   }
+}
+
diff --git a/tests/bugs/moddata/bug22489_2 b/tests/bugs/moddata/bug22489_2
new file mode 100755 (executable)
index 0000000..bd36e8c
--- /dev/null
@@ -0,0 +1,29 @@
+puts "================"
+puts "OCC22489"
+puts "================"
+puts ""
+#######################################################################
+# BRepClass3d_SolidClassifier::PerformInfinitePoint() gives wrong result on the given solid 
+#######################################################################
+
+set BugNumber OCC22489
+
+restore [locate_data_file bug22489_sew1.brep] s 
+
+mksol b s
+
+point p 1000 1000 1000
+
+set res [split [bclassify b p] ]
+
+set ll [llength ${res}]
+if {$ll < 4} {
+   puts "Bad format of bclassify draw-command; Faulty ${BugNumber}"
+} else {
+   if {[regexp {The point is OUT of shape} $res]} {
+      puts "OK ${BugNumber}"
+   } else {
+      puts "Faulty ${BugNumber}"
+   }
+}
+
diff --git a/tests/bugs/moddata/bug22494 b/tests/bugs/moddata/bug22494
new file mode 100755 (executable)
index 0000000..bd56b21
--- /dev/null
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC22494"
+puts "================"
+puts ""
+#######################################################################
+# BRepClass_FaceClassifier bug (ref SALOME issue 21185)
+#######################################################################
+
+set BugNumber OCC22494
+
+restore [locate_data_file bug22494_Pb_belogToGeom_FACE.brep] Face 
+
+point p -3.53254182396379145e-05 0.000877856930738714065
+
+set res [split [b2dclassify Face p] ]
+
+set ll [llength ${res}]
+if {${ll} < 4} {
+   puts "Bad format of bclassify draw-command; Faulty ${BugNumber}"
+} else {
+   if {[regexp {The point is ON shape} $res]} {
+      puts "OK ${BugNumber}"
+   } else {
+      puts "Faulty ${BugNumber}"
+   }
+}
+
diff --git a/tests/bugs/moddata/bug22529 b/tests/bugs/moddata/bug22529
new file mode 100755 (executable)
index 0000000..c465974
--- /dev/null
@@ -0,0 +1,18 @@
+puts "========"
+puts "OCC22529"
+puts "========"
+puts ""
+###########################################################
+# FitALL works incorrectly for small flat shapes
+###########################################################
+
+set BugNumber OCC22529
+
+restore [locate_data_file OCC22529.brep] result
+
+vinit
+vdisplay result
+vfit
+
+set length 0.04
+set only_screen 1
diff --git a/tests/bugs/moddata/bug22694 b/tests/bugs/moddata/bug22694
new file mode 100755 (executable)
index 0000000..deae6f1
--- /dev/null
@@ -0,0 +1,48 @@
+puts "==========="
+puts "OCC22694"
+puts "==========="
+######################################################
+# Wrong result obntained after GeomLib::ExtendSurfByLength
+######################################################
+
+set BugNumber OCC22694
+
+catch {pload DCAF}
+catch {pload XDE}
+
+# Create a new document and set UndoLimit
+NewDocument D
+UndoLimit D 100
+
+# Open a transaction
+NewCommand D
+
+ReadStep D [locate_data_file OCC22694-rationalSurface.stp]
+
+XGetShape sh D 0:1:1:1
+
+explode sh F
+mksurface ss sh_1
+extendsurf ss 10 2 U
+mkface result ss
+
+vdisplay sh_1
+vdisplay result
+
+vsetdispmode 1
+vfit
+
+set square 76338.8
+
+set nb_v_good 4
+set nb_e_good 4
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 10
+
+set 2dviewer 1
+
diff --git a/tests/bugs/moddata/bug22759 b/tests/bugs/moddata/bug22759
new file mode 100755 (executable)
index 0000000..abce98a
--- /dev/null
@@ -0,0 +1,104 @@
+puts "TODO OCC11111 ALL: TEST INCOMPLETE"
+
+cpulimit 30
+
+puts "============"
+puts "OCC22759"
+puts "============"
+puts ""
+#######################################################################
+# Crash during shape visualization
+#######################################################################
+
+set BugNumber OCC22759
+
+catch { pload XDE }
+
+restore [locate_data_file OCC22759-weldt6.brep] result
+checkshape result
+tclean result
+
+set Deflection 0.001
+incmesh result ${Deflection}
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+regexp {deflection +([-0-9.+eE]+)} $tri_info full defl
+
+set os "ALL"
+if {[array get env os_type] != ""} {
+  set os $env(os_type)
+}
+
+if { [regexp {Windows} $os ] } {
+   puts "OS = Windows NT"
+   set good_tri  248672
+   set good_nod  127078
+   set good_defl 0.0028424483708953232
+} else {
+   puts "OS = Linux"
+   set good_tri  248724
+   set good_nod  127104
+   set good_defl 0.0028424483709341111
+}
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+        set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 0.1
+set status 0
+
+set triangle_percent [GetPercent ${tri} ${good_tri}]
+puts "triangle_percent = ${triangle_percent}"
+if { ${triangle_percent} > ${percent_max} } {
+   puts "triangle: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "triangle: OK ${BugNumber}"
+}
+
+set node_percent [GetPercent ${nod} ${good_nod}]
+puts "node_percent = ${node_percent}"
+if { ${node_percent} > ${percent_max} } {
+   puts "node: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "node: OK ${BugNumber}"
+}
+
+set deflection_percent [GetPercent ${defl} ${good_defl}]
+puts "deflection_percent = ${deflection_percent}"
+if { ${deflection_percent} > ${percent_max} } {
+   puts "deflection: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "deflection: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+vinit
+vdisplay result
+vfit
+
+vsetdispmode 1
+
+set only_screen 1
+set square 0
diff --git a/tests/bugs/moddata/bug22802 b/tests/bugs/moddata/bug22802
new file mode 100755 (executable)
index 0000000..bf4b864
--- /dev/null
@@ -0,0 +1,71 @@
+pload QAcommands
+
+puts "==========="
+puts "OCC22802"
+puts "==========="
+puts ""
+#######################################################################
+#  The memory alloccated with an excess is not released
+#######################################################################
+
+set BugNumber OCC22802
+
+set log [bcarray]
+
+#
+#state before release the unused memory
+#Length: 10
+#FactLength: 100000
+#BlockLength: 100000
+#
+#state after release the unused memory
+#Length: 10
+#FactLength: 10
+#BlockLength: 100000
+#
+
+set linelist [split $log "\n"]
+
+set il 0
+set ifl 0
+set ibl 0
+
+set xl_0 0
+set xl_1 0
+set xfl_0 0
+set xfl_1 0
+set xbl_0 0
+set xbl_1 0
+
+foreach line $linelist {
+    if { [regexp {^Length: ([-0-9.+eE]+)} $line full xl_$il] } { incr il }
+    if { [regexp {FactLength: ([-0-9.+eE]+)} $line full xfl_$ifl] } { incr ifl }
+    if { [regexp {BlockLength: ([-0-9.+eE]+)} $line full xbl_$ibl] } { incr ibl }
+}
+
+set status 0
+if { ${xl_0} != 10} {
+  incr status
+}
+if { ${xfl_0} != 100000} {
+  incr status
+}
+if { ${xbl_0} != 100000} {
+  incr status
+}
+if { ${xl_1} != 10} {
+  incr status
+}
+if { ${xfl_1} != 10} {
+  incr status
+}
+if { ${xbl_1} != 100000} {
+  incr status
+}
+
+if { ${status} != 0} {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "${BugNumber}  OK"
+}
+
diff --git a/tests/bugs/moddata/bug22809_1 b/tests/bugs/moddata/bug22809_1
new file mode 100755 (executable)
index 0000000..cb1405e
--- /dev/null
@@ -0,0 +1,165 @@
+puts "============"
+puts "OCC22809"
+puts "============"
+puts ""
+############################################################################################################
+# BRepIntCS does not find intersections of an ellipsoid and a line passing through it's apex
+###########################################################################################################
+# 
+# Test was corrected. See:
+# 
+# http://tracker.dev.opencascade.org/view.php?id=23248
+# pkv (developer)
+# 2012-07-12 09:33
+# The checking can not provide stable result because there is no guarantee that coordinates
+# for brics_1 will always be {x1, y1, z1} but not {x2, y2, z2} and
+# for brics_42 will always be {x2, y2, z2} but not {x1, y1, z1}.
+# The coordinates of brics_1 can be both {x1, y1, z1} and {x2, y2, z2}
+# The coordinates of brics_42 can be both {x1, y1, z1} and {x2, y2, z2} 
+# 
+###########################################################################################################
+
+set BugNumber OCC22809
+
+#
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+set percent_max 0.1
+#
+
+psphere a 100
+nurbsconvert r1 a
+line l 0 0 -100 0 0 1
+BRepIntCS l r1
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_1 ] full info1
+
+# N.B. multiple result points are to be processed by other algorithms
+# Now there are 241 result points
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_2 ] full info2
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_41 ] full info2
+
+set word1 [string compare $info1 "point"]
+set word2 [string compare $info2 "point"]
+
+set status_point 0
+
+puts "ski $word1"
+puts "ski $word2"
+if { ${word1} == 0 && ${word2} == 0 } {
+    set status_point 0
+} else {
+    set status_point 1
+}
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_3 ] full info3
+set word3 [string compare $info3 "a"]
+
+set status_nb 0
+if { ${word3} == 0 } {
+    set status_nb 0
+} else {
+    set status_nb 1
+    # N.B. multiple result points are to be processed by other algorithms
+    set status_nb 0
+}
+
+set good_x1 0.000000000000000e+00
+set good_y1 0.000000000000000e+00
+set good_z1 -1.000000000000000e+02
+
+set good_x2 0.000000000000000e+00
+set good_y2 0.000000000000000e+00
+set good_z2 1.000000000000000e+02
+
+set dump1 [ dump brics_1 ]
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump1 full x1 y1 z1
+
+set status_xyz1 0
+set x1_percent [GetPercent ${x1} ${good_x1}]
+puts "x1_percent = ${x1_percent}"
+if { ${x1_percent} > ${percent_max} } {
+   puts "x1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "x1: OK ${BugNumber}"
+}
+
+set y1_percent [GetPercent ${y1} ${good_y1}]
+puts "y1_percent = ${y1_percent}"
+if { ${y1_percent} > ${percent_max} } {
+   puts "y1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "y1: OK ${BugNumber}"
+}
+
+set z1_percent [GetPercent ${z1} ${good_z1}]
+puts "z1_percent = ${z1_percent}"
+if { ${z1_percent} > ${percent_max} } {
+   set z1_percent [GetPercent ${z1} ${good_z2}]
+   puts "z1_percent = ${z1_percent}"
+   if { ${z1_percent} > ${percent_max} } {
+      puts "z1: Faulty ${BugNumber}"
+      set status_xyz1 1
+   } else {
+      puts "z1: OK ${BugNumber}"
+   }
+} else {
+   puts "z1: OK ${BugNumber}"
+}
+
+set dump2 [ dump brics_2 ]
+# N.B. multiple result points are to be processed by other algorithms
+set dump2 [ dump brics_41 ]
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump2 full x2 y2 z2
+
+set status_xyz2 0
+set x2_percent [GetPercent ${x2} ${good_x2}]
+puts "x2_percent = ${x2_percent}"
+if { ${x2_percent} > ${percent_max} } {
+   puts "x2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "x2: OK ${BugNumber}"
+}
+
+set y2_percent [GetPercent ${y2} ${good_y2}]
+puts "y2_percent = ${y2_percent}"
+if { ${y2_percent} > ${percent_max} } {
+   puts "y2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "y2: OK ${BugNumber}"
+}
+
+set z2_percent [GetPercent ${z2} ${good_z2}]
+puts "z2_percent = ${z2_percent}"
+if { ${z2_percent} > ${percent_max} } {
+   set z2_percent [GetPercent ${z2} ${good_z1}]
+   puts "z2_percent = ${z2_percent}"
+   if { ${z2_percent} > ${percent_max} } {
+      puts "z2: Faulty ${BugNumber}"
+      set status_xyz2 1
+   } else {
+      puts "z2: OK ${BugNumber}"
+   }
+} else {
+   puts "z2: OK ${BugNumber}"
+}
+
+if { ${status_point} == 0 && ${status_nb} == 0 && ${status_xyz1} == 0 && ${status_xyz2} == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug22809_2 b/tests/bugs/moddata/bug22809_2
new file mode 100755 (executable)
index 0000000..6cca816
--- /dev/null
@@ -0,0 +1,164 @@
+puts "============"
+puts "OCC22809"
+puts "============"
+puts ""
+############################################################################################################
+# BRepIntCS does not find intersections of an ellipsoid and a line passing through it's apex
+###########################################################################################################
+# 
+# Test was corrected. See:
+# 
+# http://tracker.dev.opencascade.org/view.php?id=23248
+# pkv (developer)
+# 2012-07-12 09:33
+# The checking can not provide stable result because there is no guarantee that coordinates
+# for brics_1 will always be {x1, y1, z1} but not {x2, y2, z2} and
+# for brics_42 will always be {x2, y2, z2} but not {x1, y1, z1}.
+# The coordinates of brics_1 can be both {x1, y1, z1} and {x2, y2, z2}
+# The coordinates of brics_42 can be both {x1, y1, z1} and {x2, y2, z2} 
+# 
+###########################################################################################################
+
+set BugNumber OCC22809
+
+#
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+set percent_max 0.1
+#
+
+psphere a 100
+scalexyz r2 a 2 1 1
+line l 0 0 -100 0 0 1
+BRepIntCS l r2
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_1 ] full info1
+
+# N.B. multiple result points are to be processed by other algorithms
+# Now there are 130 result points
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_23 ] full info2
+
+set word1 [string compare $info1 "point"]
+set word2 [string compare $info2 "point"]
+
+set status_point 0
+if { ${word1} == 0 && ${word2} == 0 } {
+    set status_point 0
+} else {
+    set status_point 1
+}
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_3 ] full info3
+set word3 [string compare $info3 "a"]
+
+set status_nb 0
+if { ${word3} == 0 } {
+    set status_nb 0
+} else {
+    set status_nb 1
+    # N.B. multiple result points are to be processed by other algorithms
+    set status_nb 0
+}
+
+set good_x1 0.000000000000000e+00
+set good_y1 0.000000000000000e+00
+set good_z1 -1.000000000000000e+02
+
+set good_x2 0.000000000000000e+00
+set good_y2 0.000000000000000e+00
+set good_z2 1.000000000000000e+02
+
+set dump1 [ dump brics_1 ]
+
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump1 full x1 y1 z1
+
+set status_xyz1 0
+set x1_percent [GetPercent ${x1} ${good_x1}]
+puts "x1_percent = ${x1_percent}"
+if { ${x1_percent} > ${percent_max} } {
+   puts "x1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "x1: OK ${BugNumber}"
+}
+
+set y1_percent [GetPercent ${y1} ${good_y1}]
+puts "y1_percent = ${y1_percent}"
+if { ${y1_percent} > ${percent_max} } {
+   puts "y1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "y1: OK ${BugNumber}"
+}
+
+set z1_percent [GetPercent ${z1} ${good_z1}]
+puts "z1_percent = ${z1_percent}"
+if { ${z1_percent} > ${percent_max} } {
+   set z1_percent [GetPercent ${z1} ${good_z2}]
+   puts "z1_percent = ${z1_percent}"
+   if { ${z1_percent} > ${percent_max} } {
+      puts "z1: Faulty ${BugNumber}"
+      set status_xyz1 1
+   } else {
+      puts "z1: OK ${BugNumber}"
+   }
+} else {
+   puts "z1: OK ${BugNumber}"
+}
+
+set dump2 [ dump brics_2 ]
+# N.B. multiple result points are to be processed by other algorithms
+set dump2 [ dump brics_23 ]
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump2 full x2 y2 z2
+
+set status_xyz2 0
+set x2_percent [GetPercent ${x2} ${good_x2}]
+puts "x2_percent = ${x2_percent}"
+if { ${x2_percent} > ${percent_max} } {
+   puts "x2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "x2: OK ${BugNumber}"
+}
+
+set y2_percent [GetPercent ${y2} ${good_y2}]
+puts "y2_percent = ${y2_percent}"
+if { ${y2_percent} > ${percent_max} } {
+   puts "y2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "y2: OK ${BugNumber}"
+}
+
+set z2_percent [GetPercent ${z2} ${good_z2}]
+puts "z2_percent = ${z2_percent}"
+if { ${z2_percent} > ${percent_max} } {
+   set z2_percent [GetPercent ${z2} ${good_z1}]
+   puts "z2_percent = ${z2_percent}"
+   if { ${z2_percent} > ${percent_max} } {
+      puts "z2: Faulty ${BugNumber}"
+      set status_xyz2 1
+   } else {
+      puts "z2: OK ${BugNumber}"
+   }
+} else {
+   puts "z2: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status_point} == 0 && ${status_nb} == 0 && ${status_xyz1} == 0 && ${status_xyz2} == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug22809_3 b/tests/bugs/moddata/bug22809_3
new file mode 100755 (executable)
index 0000000..cb4698b
--- /dev/null
@@ -0,0 +1,141 @@
+puts "============"
+puts "OCC22809"
+puts "============"
+puts ""
+############################################################################################################
+# BRepIntCS does not find intersections of an ellipsoid and a line passing through it's apex
+###########################################################################################################
+
+set BugNumber OCC22809
+
+#
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 0.1
+#
+
+psphere a 100
+nurbsconvert r1 a
+line l -0.000001 0.0000000001 -100 0 0 1
+BRepIntCS l r1
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_1] full info1
+
+# N.B. multiple result points are to be processed by other algorithms
+# Now there are 3 result points
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_2 ] full info2
+
+set word1 [string compare $info1 "point"]
+set word2 [string compare $info2 "point"]
+
+set status_point 0
+if { ${word1} == 0 && ${word2} == 0 } {
+    set status_point 0
+} else {
+    set status_point 1
+}
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_3 ] full info3
+set word3 [string compare $info3 "a"]
+
+set status_nb 0
+if { ${word3} == 0 } {
+    set status_nb 0
+} else {
+    set status_nb 1
+    # N.B. multiple result points are to be processed by other algorithms
+    set status_nb 0
+}
+
+set dump1 [ dump brics_1 ]
+
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump1 full x1 y1 z1
+
+set good_x1 -1.000000000000000e-06
+set good_y1 1.000000000000000e-10
+set good_z1 -1.000000000000000e+02
+
+set status_xyz1 0
+set x1_percent [GetPercent ${x1} ${good_x1}]
+puts "x1_percent = ${x1_percent}"
+if { ${x1_percent} > ${percent_max} } {
+   puts "x1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "x1: OK ${BugNumber}"
+}
+
+set y1_percent [GetPercent ${y1} ${good_y1}]
+puts "y1_percent = ${y1_percent}"
+if { ${y1_percent} > ${percent_max} } {
+   puts "y1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "y1: OK ${BugNumber}"
+}
+
+set z1_percent [GetPercent ${z1} ${good_z1}]
+puts "z1_percent = ${z1_percent}"
+if { ${z1_percent} > ${percent_max} } {
+   puts "z1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "z1: OK ${BugNumber}"
+}
+
+set dump2 [ dump brics_2 ]
+# N.B. multiple result points are to be processed by other algorithms
+set dump2 [ dump brics_2 ]
+
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump2 full x2 y2 z2
+
+set good_x2 -1.000000000000000e-06
+set good_y2 1.000000000000000e-10
+set good_z2 1.000000000000000e+02
+
+set status_xyz2 0
+set x2_percent [GetPercent ${x2} ${good_x2}]
+puts "x2_percent = ${x2_percent}"
+if { ${x2_percent} > ${percent_max} } {
+   puts "x2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "x2: OK ${BugNumber}"
+}
+
+set y2_percent [GetPercent ${y2} ${good_y2}]
+puts "y2_percent = ${y2_percent}"
+if { ${y2_percent} > ${percent_max} } {
+   puts "y2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "y2: OK ${BugNumber}"
+}
+
+set z2_percent [GetPercent ${z2} ${good_z2}]
+puts "z2_percent = ${z2_percent}"
+if { ${z2_percent} > ${percent_max} } {
+   puts "z2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "z2: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status_point} == 0 && ${status_nb} == 0 && ${status_xyz1} == 0 && ${status_xyz2} == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug22809_4 b/tests/bugs/moddata/bug22809_4
new file mode 100755 (executable)
index 0000000..42b8743
--- /dev/null
@@ -0,0 +1,143 @@
+puts "============"
+puts "OCC22809"
+puts "============"
+puts ""
+############################################################################################################
+# BRepIntCS does not find intersections of an ellipsoid and a line passing through it's apex
+###########################################################################################################
+
+set BugNumber OCC22809
+
+#
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+set percent_max 0.1
+#
+
+psphere a 100
+scalexyz r2 a 2 1 1
+line l -0.000001 0.0000000001 -100 0 0 1
+BRepIntCS l r2
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_1 ] full info1
+
+# N.B. multiple result points are to be processed by other algorithms
+# Now there are 2 result points
+set info2 [ whatis brics_2 ]
+set info2 [ whatis brics_2 ]
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_2 ] full info2
+
+
+set word1 [string compare $info1 "point"]
+set word2 [string compare $info2 "point"]
+
+set status_point 0
+if { ${word1} == 0 && ${word2} == 0 } {
+    set status_point 0
+} else {
+    set status_point 1
+}
+
+regexp {.* is a ([A-Za-z0-9]*)} [ whatis brics_3 ] full info3
+set word3 [string compare $info3 "a"]
+
+set status_nb 0
+if { ${word3} == 0 } {
+    set status_nb 0
+} else {
+    set status_nb 1
+    # N.B. multiple result points are to be processed by other algorithms
+    set status_nb 0
+}
+
+set dump1 [ dump brics_1 ]
+
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump1 full x1 y1 z1
+
+set good_x1 -1.000000000000000e-06
+set good_y1 1.000000000000000e-10
+set good_z1 -1.000000000000000e+02
+
+set status_xyz1 0
+set x1_percent [GetPercent ${x1} ${good_x1}]
+puts "x1_percent = ${x1_percent}"
+if { ${x1_percent} > ${percent_max} } {
+   puts "x1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "x1: OK ${BugNumber}"
+}
+
+set y1_percent [GetPercent ${y1} ${good_y1}]
+puts "y1_percent = ${y1_percent}"
+if { ${y1_percent} > ${percent_max} } {
+   puts "y1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "y1: OK ${BugNumber}"
+}
+
+set z1_percent [GetPercent ${z1} ${good_z1}]
+puts "z1_percent = ${z1_percent}"
+if { ${z1_percent} > ${percent_max} } {
+   puts "z1: Faulty ${BugNumber}"
+   set status_xyz1 1
+} else {
+   puts "z1: OK ${BugNumber}"
+}
+
+set dump2 [ dump brics_2 ]
+# N.B. multiple result points are to be processed by other algorithms
+set dump2 [ dump brics_2 ]
+
+regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} $dump2 full x2 y2 z2
+
+set good_x2 -1.000000000000000e-06
+set good_y2 1.000000000000000e-10
+set good_z2 1.000000000000000e+02
+
+set status_xyz2 0
+set x2_percent [GetPercent ${x2} ${good_x2}]
+puts "x2_percent = ${x2_percent}"
+if { ${x2_percent} > ${percent_max} } {
+   puts "x2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "x2: OK ${BugNumber}"
+}
+
+set y2_percent [GetPercent ${y2} ${good_y2}]
+puts "y2_percent = ${y2_percent}"
+if { ${y2_percent} > ${percent_max} } {
+   puts "y2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "y2: OK ${BugNumber}"
+}
+
+set z2_percent [GetPercent ${z2} ${good_z2}]
+puts "z2_percent = ${z2_percent}"
+if { ${z2_percent} > ${percent_max} } {
+   puts "z2: Faulty ${BugNumber}"
+   set status_xyz2 1
+} else {
+   puts "z2: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status_point} == 0 && ${status_nb} == 0 && ${status_xyz1} == 0 && ${status_xyz2} == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug22851 b/tests/bugs/moddata/bug22851
new file mode 100755 (executable)
index 0000000..a02d0d1
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC22851"
+puts "============"
+puts ""
+#######################################################################
+# No intersection curve between two surfaces
+#######################################################################
+
+set BugNumber OCC22851
+
+restore [locate_data_file bug22851_fz1.brep] b1 
+restore [locate_data_file bug22851_fz8.brep] b2 
+mksurface s1 b1
+mksurface s2 b2
+intersect i s1 s2
+
+set dump_info  [dump i]
+
+set lst [split ${dump_info}]
+set dump_length [llength $lst]
+
+set find_BSCurve [regexp {BSplineCurve} $dump_info]
+set find_Degree_Poles_Knots [regexp {Degree +[-0-9.+eE]+, +[-0-9.+eE]+ +Poles, +[-0-9.+eE]+ +Knots} $dump_info]
+
+if { $dump_length == 0 && !$find_BSCurve && !$find_Degree_Poles_Knots } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
\ No newline at end of file
diff --git a/tests/bugs/moddata/bug22907 b/tests/bugs/moddata/bug22907
new file mode 100755 (executable)
index 0000000..5358c4a
--- /dev/null
@@ -0,0 +1,50 @@
+puts "========================"
+puts "OCC22907"
+puts "========================"
+puts ""
+#######################################################################
+# The function 'distmini' produces wrong result.
+#######################################################################
+
+set BugNumber OCC22907
+
+###rename to bug22907_e.brep
+restore [locate_data_file bug22907_e.brep] b2
+vertex b1 -15.652187256227142 3.2012899919486513 9.9763479999999998
+
+distmini d b1 b2
+puts "Distance=[dval d_val]"
+
+set Good_Distance 0
+
+regexp {Vertex *: Min [-0-9.+eE]+ *Max *([-0-9.+eE]+)} [maxtolerance b1] full tol1
+regexp {Edge *: Min [-0-9.+eE]+ *Max *([-0-9.+eE]+)} [maxtolerance b2] full tol2
+regexp {Vertex *: Min [-0-9.+eE]+ *Max *([-0-9.+eE]+)} [maxtolerance b2] full tol3
+
+set max_tolerance ${tol1}
+if { ${tol2} > ${max_tolerance} } {
+   set max_tolerance ${tol2}
+}
+if { ${tol3} > ${max_tolerance} } {
+   set max_tolerance ${tol3}
+}
+puts "max_tolerance=${max_tolerance}"
+
+if [expr abs( [dval d_val] - ${Good_Distance}) > ${max_tolerance}] {
+   set status 1
+} else {
+   set status 0
+}
+
+# Resume
+puts ""
+if { ${status} == 1 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+vinit
+vdisplay b1 b2
+vfit
+
+set only_screen 0
diff --git a/tests/bugs/moddata/bug23092 b/tests/bugs/moddata/bug23092
new file mode 100755 (executable)
index 0000000..74ac26e
--- /dev/null
@@ -0,0 +1,28 @@
+puts "================"
+puts "OCC23092"
+puts "================"
+puts ""
+###################################################################################################
+# Error in BRepProj_Projection algorithm: some edges of resulting projected wire are duplicated
+###################################################################################################
+
+set BugNumber OCC23092
+
+restore [locate_data_file OCC23092-bal8h.brep] h 
+restore [locate_data_file OCC23092-bal8s.brep] s 
+set info1 [ prj r s h 0 0 1 ]
+set word1 [string compare [lindex ${info1} end] "r_1"]
+don r_1 r_2
+explode r_1 E
+explode r_2 V
+set info2 [ don r_1_10 r_2_1 r_2_2 ]
+set word2 [string compare [lindex ${info2} end] "r_1_10"]
+
+# Resume
+puts ""
+if { ${word1} == 0 && ${word2} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug23139 b/tests/bugs/moddata/bug23139
new file mode 100755 (executable)
index 0000000..72ddce6
--- /dev/null
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC23139"
+puts "================"
+puts ""
+########################################################################################################
+# BRepFilletAPI_MakeFillet algorithm builds edges with wrong first and last parameters: out of pcurve
+########################################################################################################
+
+set BugNumber OCC23139
+
+### rename to bug23139_aShape_for_fillet.brep
+restore [locate_data_file bug23139_aShape_for_fillet.brep] b 
+explode b e
+donly b b_6
+blend result b 20 b_6
+explode result f
+#av2d
+set exception_status [ catch { pcurve result_1 } ]
+
+if { ${exception_status} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+set 2dviewer 0
+set length 5558.88
diff --git a/tests/bugs/moddata/bug23152 b/tests/bugs/moddata/bug23152
new file mode 100755 (executable)
index 0000000..8e36e8e
--- /dev/null
@@ -0,0 +1,53 @@
+puts "==========="
+puts "OCC23152"
+puts "==========="
+######################################################
+# Possibility to have echo of DRAW commands in log file
+######################################################
+
+set BugNumber OCC23152
+
+dchrono t stop
+dchrono t start
+dchrono t stop
+
+dlog reset
+dlog on
+dchrono t show
+set log_on [dlog get]
+
+dlog reset
+dlog off
+dchrono t show
+set log_off [dlog get]
+
+puts "log_on = ${log_on}"
+puts "log_off = ${log_off}"
+
+set llength_log_on  [llength ${log_on}]
+set llength_log_off [llength ${log_off}]
+
+puts "llength log_on= [llength ${log_on}]"
+puts "llength log_off= [llength ${log_off}]"
+
+set status 0
+if { ${llength_log_on} > 0 } {
+   puts "dlog on work OK"
+} else {
+   puts "dlog on work Faulty"
+   set status 1
+}
+if { ${llength_log_off} == 0 } {
+   puts "dlog off work OK"
+} else {
+   puts "dlog off work Faulty"
+   set status 1
+}
+
+# Resume
+puts ""
+if { ${status} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
diff --git a/tests/bugs/moddata/bug23165 b/tests/bugs/moddata/bug23165
new file mode 100755 (executable)
index 0000000..831d7a3
--- /dev/null
@@ -0,0 +1,156 @@
+puts "================"
+puts "OCC23165"
+puts "================"
+puts ""
+###################################################################################################################
+# BndLib_Add3dCurve::Add incorrectly segmented original B-Spline what resulting in wrong bounding box or exception.
+###################################################################################################################
+
+catch { pload XDE }
+
+set BugNumber OCC23165
+
+smallview 
+
+# 1 step
+set exception_status 0
+set e1_status 0
+set status 0
+
+set percent_max 0.1
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+        set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+restore [locate_data_file OCC23165-edge1.brep] e1 
+
+donly e1
+catch { bounding e1 } msg
+fit
+
+set index [lsearch $msg exception]
+if {$index > -1} {
+  set exception_status 1
+} else {
+  set e1_result [bounding e1]
+
+  set e1_x1 [lindex ${e1_result} 0]
+  set e1_y1 [lindex ${e1_result} 1]
+  set e1_z1 [lindex ${e1_result} 2]
+  set e1_x2 [lindex ${e1_result} 3]
+  set e1_y2 [lindex ${e1_result} 4]
+  set e1_z2 [lindex ${e1_result} 5]
+
+  set e1_good_x1 -17.610622244944413
+  set e1_good_y1 -0.010622244944394899
+  set e1_good_z1 -3.0106222449443973
+  set e1_good_x2 -17.589377755055537
+  set e1_good_y2 5.7106222251726582
+  set e1_good_z2 -1.6146050638816589
+
+  set e1_x1_percent [GetPercent ${e1_x1} ${e1_good_x1}]
+  set e1_y1_percent [GetPercent ${e1_y1} ${e1_good_y1}]
+  set e1_z1_percent [GetPercent ${e1_z1} ${e1_good_z1}]
+  set e1_x2_percent [GetPercent ${e1_x2} ${e1_good_x2}]
+  set e1_y2_percent [GetPercent ${e1_y2} ${e1_good_y2}]
+  set e1_z2_percent [GetPercent ${e1_z2} ${e1_good_z2}]
+
+  if {${e1_x1_percent} > ${percent_max}} {
+        puts "Faulty ${BugNumber} : x1 for e1 is wrong"
+        set e1_status 1
+  }
+  if {${e1_y1_percent} > ${percent_max}} {
+        puts "Faulty ${BugNumber} : y1 for e1 is wrong"
+        set e1_status 1
+  }
+  if {${e1_z1_percent} > ${percent_max}} {
+        puts "Faulty ${BugNumber} : z1 for e1 is wrong"
+        set e1_status 1
+  }
+  if {${e1_x2_percent} > ${percent_max}} {
+        puts "Faulty ${BugNumber} : x2 for e1 is wrong"
+        set e1_status 1
+  }
+  if {${e1_y2_percent} > ${percent_max}} {
+        puts "Faulty ${BugNumber} : y2 for e1 is wrong"
+        set e1_status 1
+  }
+  if {${e1_z2_percent} > ${percent_max}} {
+        puts "Faulty ${BugNumber} : z2 for e1 is wrong"
+        set e1_status 1
+  }
+
+}
+
+# 2 step
+restore [locate_data_file OCC23165-curve.rle] c 
+mkedge result c 20 36
+
+donly result
+set result [bounding result]
+fit
+
+set x1 [lindex ${result} 0]
+set y1 [lindex ${result} 1]
+set z1 [lindex ${result} 2]
+set x2 [lindex ${result} 3]
+set y2 [lindex ${result} 4]
+set z2 [lindex ${result} 5]
+
+set good_x1 -17.6105835090592
+set good_y1 -4.7133570660117909
+set good_z1 -4.3679100133425806
+set good_x2 -17.589416490940806
+set good_y2 5.7105834892874094
+set good_z2 -1.6146437997669054
+
+set x1_percent [GetPercent ${x1} ${good_x1}]
+set y1_percent [GetPercent ${y1} ${good_y1}]
+set z1_percent [GetPercent ${z1} ${good_z1}]
+set x2_percent [GetPercent ${x2} ${good_x2}]
+set y2_percent [GetPercent ${y2} ${good_y2}]
+set z2_percent [GetPercent ${z2} ${good_z2}]
+
+if {${x1_percent} > ${percent_max}} {
+   puts "Faulty ${BugNumber} : x1 is wrong"
+   set status 1
+}
+if {${y1_percent} > ${percent_max}} {
+   puts "Faulty ${BugNumber} : y1 is wrong"
+   set status 1
+}
+if {${z1_percent} > ${percent_max}} {
+   puts "Faulty ${BugNumber} : z1 is wrong"
+   set status 1
+}
+if {${x2_percent} > ${percent_max}} {
+   puts "Faulty ${BugNumber} : x2 is wrong"
+   set status 1
+}
+if {${y2_percent} > ${percent_max}} {
+   puts "Faulty ${BugNumber} : y2 is wrong"
+   set status 1
+}
+if {${z2_percent} > ${percent_max}} {
+   puts "Faulty ${BugNumber} : z2 is wrong"
+   set status 1
+}
+
+if { ${status} == 0 && ${exception_status} == 0&& ${e1_status} == 0 } {
+   puts "${BugNumber}: OK"
+} else {
+   puts "${BugNumber}: Faulty"
+}
+
+set 2dviewer 1
+set length 15.8888
+
diff --git a/tests/bugs/moddata/bug23201 b/tests/bugs/moddata/bug23201
new file mode 100755 (executable)
index 0000000..1522cc3
--- /dev/null
@@ -0,0 +1,79 @@
+puts "============"
+puts "OCC23201"
+puts "============"
+puts ""
+#######################################################################
+# Projection algorithm produces wrong results.
+#######################################################################
+
+set BugNumber OCC23201
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+restore [locate_data_file bug23201_Tool_1.brep] b2
+restore [locate_data_file bug23201_Tool_2.brep] b3
+
+explode b2 f
+mksurface s2 b2_1
+
+explode b3 f
+mksurface s3 b3_1
+
+explode b2 e
+mkcurve c2 b2_2
+
+explode b3 e
+mkcurve c3 b3_2
+
+set BugStatus 0
+
+set percent_max 0.1
+set good_c23 3.1415926535897922
+set good_c32 3.1415926535897922
+
+if [catch { project c23 c2 s3 } ] {
+    set BugStatus 1
+} else {
+    set c23_length [lindex [length c23] end]
+    set length_percent [GetPercent ${c23_length} ${good_c23}]
+    puts "length_percent = ${length_percent}"
+    if {${length_percent} > ${percent_max}} {
+       puts "c23: Faulty"
+       set BugStatus 1
+    } else {
+       puts "c23: OK"
+    }
+}
+
+if [catch { project c32 c3 s2 } ] {
+    set BugStatus 1
+} else {
+    set c32_length [lindex [length c32] end]
+    set length_percent [GetPercent ${c32_length} ${good_c32}]
+    puts "length_percent = ${length_percent}"
+    if {${length_percent} > ${percent_max}} {
+       puts "c32: Faulty"
+       set BugStatus 1
+    } else {
+       puts "c32: OK"
+    }
+}
+
+# Resume
+puts ""
+if { ${BugStatus} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/moddata/bug23224 b/tests/bugs/moddata/bug23224
new file mode 100755 (executable)
index 0000000..6797994
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC23224"
+puts "============"
+puts ""
+#######################################################################
+# Empty result done by intersection algorithm
+#######################################################################
+
+set BugNumber OCC23224
+
+restore [locate_data_file OCC23224-line.brep] l
+restore [locate_data_file OCC23224-face.brep] f
+mksurface s f
+mkcurve c l
+intersect result c s
+set info1 [dump result]
+
+if { [regexp {Point +: ([-0-9.+eE]+)} $info1 full] == 0  } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+
diff --git a/tests/bugs/moddata/bug23244 b/tests/bugs/moddata/bug23244
new file mode 100755 (executable)
index 0000000..152ad72
--- /dev/null
@@ -0,0 +1,36 @@
+puts "================"
+puts "OCC23244"
+puts "================"
+puts ""
+#######################################################################
+# Bug of BRepClass_FaceClassifier: it does not take into account the tolerance
+#######################################################################
+
+set BugNumber OCC23244
+
+restore [locate_data_file OCC23244-comp.brep] a
+
+explode a
+explode a_1
+
+smallview
+donly a_1_2 a_3
+fit
+
+mkpoint p3 a_3
+projponf a_1_2 p3
+point pp3 69.220445243320853 1216.6123701316949
+
+set result [split [b2dclassify a_1_2 pp3 1.e-5] ]
+
+set ll [llength ${result}]
+if {${ll} < 4} {
+   puts "Bad format of bclassify draw-command; Faulty ${BugNumber}"
+} else {
+   if { [regexp "ON" $result] == 1 } {
+      puts "OK ${BugNumber}"
+   } else {
+      puts "Faulty ${BugNumber}"
+   }
+}
+
diff --git a/tests/bugs/moddata/bug23248 b/tests/bugs/moddata/bug23248
new file mode 100755 (executable)
index 0000000..df9dcca
--- /dev/null
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC23248"
+puts "================"
+puts ""
+#######################################################################
+# Wrong result done by solid classifier algorithm for infinite point
+#######################################################################
+
+set BugNumber OCC23248
+
+restore [locate_data_file bug23248_so] b
+
+set result [split [xclassify b 1e-7]]
+
+set ll [llength ${result}]
+if {${ll} < 3} {
+    puts "Bad format of xclassify draw-command; Faulty ${BugNumber}"
+} else {
+    set status [lindex ${result} 2]
+    if { [regexp "OUT" $result] == 1 } {
+       puts "OK ${BugNumber}"
+    } else {
+       puts "Faulty ${BugNumber}"
+    }
+}
+
+
diff --git a/tests/bugs/moddata/bug9303 b/tests/bugs/moddata/bug9303
new file mode 100755 (executable)
index 0000000..11d2950
--- /dev/null
@@ -0,0 +1,107 @@
+puts "============"
+puts "OCC9303"
+puts "============"
+puts ""
+######################################################
+# Intersection curve surface doesn't take account of bounds of the surface
+######################################################
+
+set BugNumber OCC9303
+
+proc GetPercent {Value GoodValue} {
+   set Percent 0.
+   if {${GoodValue} != 0.} {
+      set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+   } elseif {${Value} != 0.} {
+      set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+   } else {
+      set Percent 0.
+   }
+   return ${Percent}
+}
+
+cone c 0 0 0 30 0
+trimv nc c 20 30
+
+smallview +X+Z
+donly nc
+fit
+
+line ll 0 0 20 1 0 0
+
+if [catch {intersect res ll nc} result] {
+   set mistake 1
+} else {
+   set  mistake 0
+}
+                                                                                                
+if { $mistake == 0} {                                                                           
+   puts "${BugNumber} OK : intersection was finished"                 
+   puts ""
+   set nom 0
+   set j 1
+   repeat 2 {
+     set che [whatis res_$j]
+     set err [lindex $che [expr [llength $che] - 1]]
+     if { $err != "point"} {
+        break
+     } else {
+        set nom [expr $nom + 1]
+     }
+     incr j
+   }
+   if { $nom != 2 } {
+      puts [format "Faulty ${BugNumber}: Intersection was made WRONGLY: %s points" $nom]
+   } else {
+      puts [format "${BugNumber} OK : Intersection command works properly: %s points" $nom]
+
+      set dump1 [dump res_1]
+      set x1 [lindex ${dump1} 7]
+      set y1 [lindex ${dump1} 8]
+      set z1 [lindex ${dump1} 9]
+      set x1 [string range ${x1} 0 end-1]
+      set y1 [string range ${y1} 0 end-1]
+
+      set dump2 [dump res_2]
+      set x2 [lindex ${dump2} 7]
+      set y2 [lindex ${dump2} 8]
+      set z2 [lindex ${dump2} 9]
+      set x2 [string range ${x2} 0 end-1]
+      set y2 [string range ${y2} 0 end-1]
+
+      set percent_max 0.1
+      set GoodX1 1.154700538379251e+01
+      set GoodY1 0.000000000000000e+00
+      set GoodZ1 2.000000000000000e+01
+      set GoodX2 -1.154700538379251e+01
+      set GoodY2 0.000000000000000e+00
+      set GoodZ2 2.000000000000000e+01
+
+      set Percent_x1 [GetPercent ${x1} ${GoodX1}]
+      set Percent_y1 [GetPercent ${y1} ${GoodY1}]
+      set Percent_z1 [GetPercent ${z1} ${GoodZ1}]
+
+      set Percent_x2 [GetPercent ${x2} ${GoodX2}]
+      set Percent_y2 [GetPercent ${y2} ${GoodY2}]
+      set Percent_z2 [GetPercent ${z2} ${GoodZ2}]
+
+      if {${Percent_x1} > ${percent_max}} {
+        puts "Faulty ${BugNumber}: bad value of x1 = ${x1}"
+      } elseif {${Percent_y1} > ${percent_max}} {
+        puts "Faulty ${BugNumber}: bad value of y1 = ${y1}"
+      } elseif {${Percent_z1} > ${percent_max}} {
+        puts "Faulty ${BugNumber}: bad value of z1 = ${z1}"
+      } elseif {${Percent_x2} > ${percent_max}} {
+        puts "Faulty ${BugNumber}: bad value of x2 = ${x2}"
+     } elseif {${Percent_y2} > ${percent_max}} {
+        puts "Faulty ${BugNumber}: bad value of y2 = ${y2}"
+      } elseif {${Percent_z2} > ${percent_max}} {
+        puts "Faulty ${BugNumber}: bad value of z2 = ${z2}"
+      } else {
+        puts "${BugNumber}: OK"
+      }
+
+   }
+} else {
+   puts "Faulty ${BugNumber} : intersection does not finished"
+}
diff --git a/tests/bugs/moddata/bug9303_1 b/tests/bugs/moddata/bug9303_1
new file mode 100755 (executable)
index 0000000..f4de3ef
--- /dev/null
@@ -0,0 +1,51 @@
+puts "============"
+puts "OCC9303"
+puts "============"
+puts ""
+######################################################
+# Intersection curve surface doesn't take account of bounds of the surface
+######################################################
+
+set BugNumber OCC9303
+
+cone c 0 0 0 30 0
+trimv nc c 20 30
+
+smallview +X+Z
+donly nc
+fit
+
+line ll 0 0 10 1 0 0
+
+decho off
+if [catch {intersect res ll nc} result] {
+   set mistake 1
+} else {
+   set  mistake 0
+}
+decho on
+
+if { $mistake == 0} {                                                                           
+   puts "${BugNumber} OK : intersection was finished"                 
+   puts ""
+   set nom 0
+   set j 1
+   repeat 2 {
+     set che [whatis res_$j]
+     set err [lindex $che [expr [llength $che] - 1]]
+     if { $err != "point"} {
+        break
+     } else {
+        set nom [expr $nom + 1]
+     }
+     incr j
+   }
+   if { $nom != 0 } {
+      puts [format "Faulty ${BugNumber}: Intersection was made WRONGLY: %s points" $nom]
+   } else {
+      puts [format "${BugNumber} OK : Intersection command works properly: %s points" $nom]
+   }
+} else {
+   puts "Faulty ${BugNumber} : intersection does not finished"
+}
+
diff --git a/tests/bugs/step/bug11856 b/tests/bugs/step/bug11856
new file mode 100755 (executable)
index 0000000..516a8fb
--- /dev/null
@@ -0,0 +1,30 @@
+puts "TODO ?OCC12345 ALL: StepFile Error"
+
+puts "============"
+puts "OCC11856"
+puts "============"
+puts ""
+#######################################################################
+# Error in reading of step file
+#######################################################################
+
+set BugNumber OCC11856
+
+decho off
+stepread [locate_data_file OCC11856.stp] a *
+decho on
+
+tpcompound result
+
+set square 653115
+set nb_v_good 684
+set nb_e_good 1222
+set nb_w_good 519
+set nb_f_good 512
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 2940
+
+set 2dviewer 0
diff --git a/tests/bugs/step/bug11857 b/tests/bugs/step/bug11857
new file mode 100755 (executable)
index 0000000..53d742e
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC11857"
+puts "============"
+puts ""
+#######################################################################
+# Step toruses with negative radiuses did not translated
+#######################################################################
+
+stepread [locate_data_file OCC11857.stp] a *
+tpcompound result
+
+set square 208019
+set nb_v_good 63
+set nb_e_good 102
+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 246
+
+set 2dviewer 0
diff --git a/tests/bugs/step/bug16351 b/tests/bugs/step/bug16351
new file mode 100755 (executable)
index 0000000..7522b7e
--- /dev/null
@@ -0,0 +1,12 @@
+puts "============"
+puts "OCC16351"
+puts "============"
+puts ""
+#######################################################################
+# Crash in ShapeFix_Edge::FixAddPCurve
+#######################################################################
+
+decho off
+stepread [locate_data_file OCC16351.step] a *
+decho on
+
diff --git a/tests/bugs/step/bug22145 b/tests/bugs/step/bug22145
new file mode 100755 (executable)
index 0000000..2f955de
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Error : The square of result shape is "
+puts "TODO OCC12345 ALL: Error : Result shape is WRONG"
+puts "============"
+puts "OCC22145"
+puts "============"
+puts ""
+#######################################################################
+# Incorrect cutting BRepMesh_FastDiscretFace
+#######################################################################
+
+decho off
+stepread [locate_data_file OCC22145.stp] a *
+decho on
+
+tpcompound result
+
+set square 653115
+set nb_v_good 684
+set nb_e_good 1222
+set nb_w_good 519
+set nb_f_good 512
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 2940
+
+set 2dviewer 0
diff --git a/tests/bugs/step/bug22237 b/tests/bugs/step/bug22237
new file mode 100755 (executable)
index 0000000..55d9dfa
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "OCC22237"
+puts "============"
+puts ""
+#######################################################################
+# Regression in STEP reader
+#######################################################################
+
+catch { pload XDE }
+
+set BugNumber OCC22237
+
+if [catch { stepread [locate_data_file OCC22237.stp]  a * } catch_result] {
+   puts "Faulty ${BugNumber}"
+} else {
+  tpcompound result
+
+set square 1.50067e+07
+
+set nb_v_good 136
+set nb_e_good 236
+set nb_w_good 102
+set nb_f_good 102
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 579
+
+}
+
+set 2dviewer 0
+
diff --git a/tests/bugs/step/bug23157 b/tests/bugs/step/bug23157
new file mode 100755 (executable)
index 0000000..bb52caf
--- /dev/null
@@ -0,0 +1,10 @@
+puts "============"
+puts "OCC23157"
+puts "============"
+puts ""
+#######################################################################
+# Exception reading STEP file in Debug mode
+#######################################################################
+
+ReadStep D [locate_data_file OCC23157-screws.step]
+
diff --git a/tests/bugs/step/bug23251 b/tests/bugs/step/bug23251
new file mode 100755 (executable)
index 0000000..4f08352
--- /dev/null
@@ -0,0 +1,12 @@
+puts "============"
+puts "OCC23251"
+puts "============"
+puts ""
+#######################################################################
+# Crash during reading materials from STEP file for case when name of material is not set.
+#######################################################################
+
+set BugNumber OCC23251
+
+ReadStep D [locate_data_file OCC23251-dm1-oc-214.stp] res
+
diff --git a/tests/bugs/vis/bug12121 b/tests/bugs/vis/bug12121
new file mode 100755 (executable)
index 0000000..9c6af2f
--- /dev/null
@@ -0,0 +1,133 @@
+puts "TODO ?OCC11111 ALL: Faulty OCC12121"
+
+puts "================"
+puts "OCC12121"
+puts "================"
+puts ""
+#######################################################################################
+# Optimization of existing selection classes
+######################################################################################
+
+set BugNumber OCC12121
+set x1 226
+set y1 154
+
+set x2 300
+set y2 187
+
+set x3 183
+set y3 269
+
+set x_vertex_obj 330
+set y_vertex_obj 212
+set x_vertex_new 184
+set y_vertex_new 268
+
+set x_edge_obj 296
+set y_edge_obj 155
+set x_edge_new 205
+set y_edge_new 240
+
+set x_wire_obj 298
+set y_wire_obj 209
+set x_wire_new 55
+set y_wire_new 236
+
+set x_face_obj 169
+set y_face_obj 146
+set x_face_new 204
+set y_face_new 238
+
+set x_shell_obj 224
+set y_shell_obj 148
+set x_shell_new 230
+set y_shell_new 268
+
+set x_solid_obj 329
+set y_solid_obj 218
+set x_solid_new 168
+set y_solid_new 256
+
+set R_check 0
+set G_check 1
+set B_check 1
+
+set x_refresh 10
+set y_refresh 10
+
+restore [locate_data_file OCC12121-CrankArm.brep] obj 
+vinit
+vdisplay obj
+vconnectsh new 50 50 50 1 0 0 0 0 1 obj
+vfit
+vmoveto $x1 $y1
+set ColorObj1 [QAGetPixelColor ${x2} ${y2}]
+set ColorNew1 [QAGetPixelColor ${x3} ${y3}]
+
+vselect $x1 $y1
+set ColorObj2 [QAGetPixelColor ${x2} ${y2}]
+set ColorNew2 [QAGetPixelColor ${x3} ${y3}]
+
+puts "Check vconnectsh command"
+set status_vconnectsh 0
+if { ${ColorObj1} == ${ColorNew1} && ${ColorObj2} == ${ColorNew2} } {   
+    set status_vconnectsh 0
+} else {
+    set status_vconnectsh 1
+}
+
+vselect ${x_refresh} ${y_refresh}
+vselmode 1 1
+vmoveto ${x_vertex_obj} ${y_vertex_obj}
+checkcolor ${x_vertex_obj} ${y_vertex_obj} ${R_check} ${G_check} ${B_check}
+vmoveto ${x_vertex_new} ${y_vertex_new}
+checkcolor ${x_vertex_new} ${y_vertex_new} ${R_check} ${G_check} ${B_check}
+
+vselmode 1 0
+vselmode 2 1
+vmoveto ${x_edge_obj} ${y_edge_obj}
+checkcolor ${x_edge_obj} ${y_edge_obj} ${R_check} ${G_check} ${B_check}
+vmoveto ${x_edge_new} ${y_edge_new}
+checkcolor ${x_edge_new} ${y_edge_new} ${R_check} ${G_check} ${B_check}
+
+vselmode 2 0
+vselmode 3 1
+vmoveto ${x_wire_obj} ${y_wire_obj}
+checkcolor ${x_wire_obj} ${y_wire_obj} ${R_check} ${G_check} ${B_check}
+vmoveto ${x_wire_new} ${y_wire_new}
+checkcolor ${x_wire_new} ${y_wire_new} ${R_check} ${G_check} ${B_check}
+
+vselmode 3 0
+vselmode 4 1
+vmoveto ${x_face_obj} ${y_face_obj}
+checkcolor ${x_face_obj} ${y_face_obj} ${R_check} ${G_check} ${B_check}
+vmoveto ${x_face_new} ${y_face_new}
+checkcolor ${x_face_new} ${y_face_new} ${R_check} ${G_check} ${B_check}
+
+vselmode 4 0
+vselmode 5 1
+vmoveto ${x_shell_obj} ${y_shell_obj}
+checkcolor ${x_shell_obj} ${y_shell_obj} ${R_check} ${G_check} ${B_check}
+vmoveto ${x_shell_new} ${y_shell_new}
+checkcolor ${x_shell_new} ${y_shell_new} ${R_check} ${G_check} ${B_check}
+
+vselmode 5 0
+vselmode 6 1
+vmoveto ${x_solid_obj} ${y_solid_obj}
+checkcolor ${x_solid_obj} ${y_solid_obj} ${R_check} ${G_check} ${B_check}
+vmoveto ${x_solid_new} ${y_solid_new}
+checkcolor ${x_solid_new} ${y_solid_new} ${R_check} ${G_check} ${B_check}
+
+vselmode 6 0
+vselmode obj 1
+vselect ${x_refresh} ${y_refresh}
+
+##Resume
+puts ""
+if { ${status_vconnectsh} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug12584 b/tests/bugs/vis/bug12584
new file mode 100755 (executable)
index 0000000..db5c67e
--- /dev/null
@@ -0,0 +1,10 @@
+set BugNumber OCC12584
+
+puts "============"
+puts "OCC12584"
+puts "============"
+puts ""
+vinit
+OCC12584
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug129_1 b/tests/bugs/vis/bug129_1
new file mode 100755 (executable)
index 0000000..c8a9821
--- /dev/null
@@ -0,0 +1,41 @@
+puts "================"
+puts "OCC129"
+puts "================"
+puts ""
+#######################################################################################
+# Object is not selectable in the Cascade Viewer
+######################################################################################
+
+set BugNumber OCC22129
+
+cylinder c 0 0 1 10
+mkface f c
+
+vinit
+vdisplay f
+
+set x1 207
+set y1 184
+set x2 222
+set y2 175
+
+set UNSELECT_R 1
+set UNSELECT_G 1
+set UNSELECT_B 0
+
+set MOVESELECT_R 0
+set MOVESELECT_G 1
+set MOVESELECT_B 1
+
+
+vmoveto ${x1} ${y1}
+checkcolor ${x1} ${y1} 0 1 1
+
+vselect ${x1} ${y1}
+checkcolor ${x1} ${y1} 0.8 0.8 0.8
+
+vselect ${x2} ${y2}
+checkcolor ${x1} ${y1} 1 1 0
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug129_2 b/tests/bugs/vis/bug129_2
new file mode 100755 (executable)
index 0000000..fd6725c
--- /dev/null
@@ -0,0 +1,32 @@
+puts "================"
+puts "OCC129"
+puts "================"
+puts ""
+#######################################################################################
+# Object is not selectable in the Cascade Viewer
+######################################################################################
+
+set BugNumber OCC22129
+
+cylinder c 0 0 1 10
+trimv ct c -1e+9 1e+9
+mkface ft ct
+
+vinit
+vdisplay ft
+
+set x1 207
+set y1 184
+set x2 222
+set y2 175
+
+vmoveto ${x1} ${y1}
+checkcolor ${x1} ${y1} 0 1 1
+
+vselect ${x1} ${y1}
+checkcolor ${x1} ${y1} 0.8 0.8 0.8
+
+vselect ${x2} ${y2}
+checkcolor ${x1} ${y1} 1 1 0
+
+set only_screen 0
diff --git a/tests/bugs/vis/bug16950_1 b/tests/bugs/vis/bug16950_1
new file mode 100755 (executable)
index 0000000..5ac3268
--- /dev/null
@@ -0,0 +1,25 @@
+puts "==========="
+puts "OCC16950"
+puts "==========="
+######################################################
+# OCC Visualization fails to display empty nested compounds
+######################################################
+
+set BugNumber OCC16950
+
+puts "Make compound containing another (empty) one"
+compound c
+compound c result
+
+puts "And display it"
+vinit
+vdisplay result
+
+# Resume
+if [catch { vsetdispmode 1 } res] {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+
diff --git a/tests/bugs/vis/bug16950_2 b/tests/bugs/vis/bug16950_2
new file mode 100755 (executable)
index 0000000..12cfde7
--- /dev/null
@@ -0,0 +1,24 @@
+puts "==========="
+puts "OCC16950"
+puts "==========="
+######################################################
+# OCC Visualization fails to display empty nested compounds
+######################################################
+
+set BugNumber OCC16950
+
+puts "Make compound containing another (empty) one"
+compound c
+compound c result
+
+puts "And display it"
+vinit
+vdisplay result
+
+# Resume
+if [catch { vsetdispmode 2 } res] {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/vis/bug16950_3 b/tests/bugs/vis/bug16950_3
new file mode 100755 (executable)
index 0000000..51461e9
--- /dev/null
@@ -0,0 +1,30 @@
+puts "==========="
+puts "OCC16950"
+puts "==========="
+######################################################
+# OCC Visualization fails to display empty nested compounds
+######################################################
+
+pload DCAF
+
+set BugNumber OCC16950
+
+puts "Make compound containing another (empty) one"
+compound c
+compound c result
+
+pload XDE
+puts "Add it to the new XCAF document"
+NewDocument D
+XAddShape D result
+
+puts "Then display it"
+XShow D
+
+# Resume
+if [catch { vsetdispmode 1 } res] {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/vis/bug16950_4 b/tests/bugs/vis/bug16950_4
new file mode 100755 (executable)
index 0000000..877bcbb
--- /dev/null
@@ -0,0 +1,29 @@
+puts "==========="
+puts "OCC16950"
+puts "==========="
+######################################################
+# OCC Visualization fails to display empty nested compounds
+######################################################
+
+pload DCAF
+
+set BugNumber OCC16950
+
+puts "Make compound containing another (empty) one"
+compound c
+compound c result
+
+pload XDE
+puts "Add it to the new XCAF document"
+NewDocument D
+XAddShape D result
+
+puts "Then display it"
+XShow D
+
+# Resume
+if [catch { vsetdispmode 2 } res] {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/vis/bug19820 b/tests/bugs/vis/bug19820
new file mode 100755 (executable)
index 0000000..2b45b2c
--- /dev/null
@@ -0,0 +1,73 @@
+puts "============"
+puts "OCC19820"
+puts "============"
+puts ""
+#######################################################################
+# 3D discrete topology (voxels)
+#######################################################################
+
+set BugNumber OCC19820
+
+set status 0
+
+puts "1.  voxelboolds ..."
+if [catch {voxelboolds}] {
+   set status 1
+}
+
+puts "2.  voxelcolords ..."
+if [catch {voxelcolords}] {
+   set status 1
+}
+
+puts "3.  voxelfloatds ..."
+if [catch {voxelfloatds}] {
+   set status 1
+}
+
+puts "4.  voxeloctboolds ..."
+if [catch {voxeloctboolds}] {
+   set status 1
+}
+
+puts "5.  voxelroctboolds ..."
+if [catch {voxelroctboolds}] {
+   set status 1
+}
+
+puts "6.  voxelfuseboolds ..."
+if [catch {voxelfuseboolds}] {
+   set status 1
+}
+
+puts "7.  voxelfusecolords ..."
+if [catch {voxelfusecolords}] {
+   set status 1
+}
+
+puts "8.  voxelfusefloatds ..."
+if [catch {voxelfusefloatds}] {
+   set status 1
+}
+
+puts "9.  voxelcutboolds ..."
+if [catch {voxelcutboolds}] {
+   set status 1
+}
+
+puts "10. voxelcutcolords ..."
+if [catch {voxelcutcolords}] {
+   set status 1
+}
+
+puts "11. voxelcutfloatds ..."
+if [catch {voxelcutfloatds}] {
+   set status 1
+}
+
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/vis/bug20373 b/tests/bugs/vis/bug20373
new file mode 100755 (executable)
index 0000000..e322a3c
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC20373"
+puts "============"
+puts ""
+#######################################################################
+# Shading doesn't work on b-spline sphere
+#######################################################################
+
+set BugNumber OCC20373
+
+restore [locate_data_file OCC20373.brep] result
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+puts [format " tri= %s  noe= %s " $tri $nod]
+
+# Resume
+puts ""
+if { ${tri} == 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set square 9.92128e+06
+set 3dviewer 1
+
diff --git a/tests/bugs/vis/bug20802 b/tests/bugs/vis/bug20802
new file mode 100755 (executable)
index 0000000..d21adde
--- /dev/null
@@ -0,0 +1,18 @@
+puts "========================"
+puts "OCC20802"
+puts "========================"
+puts ""
+#######################################################################
+# V3d_View: Text size used by V3d_ZBUFFER'ed trihedron is too large
+#######################################################################
+
+set BugNumber OCC20802
+
+vinit
+vzbufftrihedron
+
+puts "V3d_View: Text size used by V3d_ZBUFFER'ed trihedron is too large"
+
+puts "OK ${BugNumber}"
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21171_1 b/tests/bugs/vis/bug21171_1
new file mode 100755 (executable)
index 0000000..70a56ac
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC21171"
+puts "============"
+puts ""
+#######################################################################
+# Problem with vfit of vertex and edge 
+#######################################################################
+
+set BugNumber OCC21171
+
+box result 100 100 100
+explode result e
+
+vinit
+vdisplay result_1
+vfit
+
+# Resume
+puts ""
+puts "1 edge is not fit"
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21171_2 b/tests/bugs/vis/bug21171_2
new file mode 100755 (executable)
index 0000000..f34abc5
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC21171"
+puts "============"
+puts ""
+#######################################################################
+# Problem with vfit of vertex and edge 
+#######################################################################
+
+set BugNumber OCC21171
+
+box result 100 100 100
+explode result e
+
+vinit
+vdisplay result_1
+vdisplay result_2
+vfit
+
+# Resume
+puts ""
+puts "2 edges are fit"
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21171_3 b/tests/bugs/vis/bug21171_3
new file mode 100755 (executable)
index 0000000..c0bc292
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC21171"
+puts "============"
+puts ""
+#######################################################################
+# Problem with vfit of vertex and edge 
+#######################################################################
+
+set BugNumber OCC21171
+
+box result 100 100 100
+explode result v
+
+vinit
+vdisplay result_8
+vfit
+
+# Resume
+puts ""
+puts "1 vertex is not fit"
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21171_4 b/tests/bugs/vis/bug21171_4
new file mode 100755 (executable)
index 0000000..1e448ed
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC21171"
+puts "============"
+puts ""
+#######################################################################
+# Problem with vfit of vertex and edge 
+#######################################################################
+
+set BugNumber OCC21171
+
+box result 100 100 100
+explode result v
+
+vinit
+vdisplay result_8
+vdisplay result_1
+vfit
+
+# Resume
+puts ""
+puts "2 vertexes are fit"
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_1 b/tests/bugs/vis/bug21747_1
new file mode 100755 (executable)
index 0000000..b98e501
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 0
+
+puts "${BugNumber}"
+puts "Type=NONE, Color from RED to BLUE"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_10 b/tests/bugs/vis/bug21747_10
new file mode 100755 (executable)
index 0000000..073ac49
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 5
+
+puts "${BugNumber}"
+puts "Type=CORNER1, Color from RED to BLUE, Direction from LEFT TOP CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_11 b/tests/bugs/vis/bug21747_11
new file mode 100755 (executable)
index 0000000..99c57b8
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 6
+
+puts "${BugNumber}"
+puts "Type=CORNER2, Color from RED to BLUE, Direction from RIGHT TOP CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_12 b/tests/bugs/vis/bug21747_12
new file mode 100755 (executable)
index 0000000..0883fd6
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 7
+
+puts "${BugNumber}"
+puts "Type=CORNER3, Color from RED to BLUE, Direction from RIGHT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_13 b/tests/bugs/vis/bug21747_13
new file mode 100755 (executable)
index 0000000..ed9e80a
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 8
+
+puts "${BugNumber}"
+puts "Type=CORNER4, Color from RED to BLUE, Direction from LEFT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_14 b/tests/bugs/vis/bug21747_14
new file mode 100755 (executable)
index 0000000..7adfa01
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 5
+
+puts "${BugNumber}"
+puts "Type=CORNER1, Color from BLUE to RED, Direction from LEFT TOP CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_15 b/tests/bugs/vis/bug21747_15
new file mode 100755 (executable)
index 0000000..cae6df2
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 6
+
+puts "${BugNumber}"
+puts "Type=CORNER2, Color from BLUE to RED, Direction from RIGHT TOP CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_16 b/tests/bugs/vis/bug21747_16
new file mode 100755 (executable)
index 0000000..d56818e
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 7
+
+puts "${BugNumber}"
+puts "Type=CORNER3, Color from BLUE to RED, Direction from RIGHT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_17 b/tests/bugs/vis/bug21747_17
new file mode 100755 (executable)
index 0000000..11cbf06
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 8
+
+puts "${BugNumber}"
+puts "Type=CORNER4, Color from BLUE to RED, Direction from LEFT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_2 b/tests/bugs/vis/bug21747_2
new file mode 100755 (executable)
index 0000000..97f2707
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 1
+
+puts "${BugNumber}"
+puts "Type=HORIZONTAL, Color from RED to BLUE, Direction from LEFT to RIGHT"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_3 b/tests/bugs/vis/bug21747_3
new file mode 100755 (executable)
index 0000000..7f36851
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 1
+
+puts "${BugNumber}"
+puts "Type=HORIZONTAL, Color from BLUE to RED, Direction from LEFT to RIGHT"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_4 b/tests/bugs/vis/bug21747_4
new file mode 100755 (executable)
index 0000000..a9f16ca
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 2
+
+puts "${BugNumber}"
+puts "Type=VERTICAL, Color from RED to BLUE, Direction from TOP to BOTTOM"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
\ No newline at end of file
diff --git a/tests/bugs/vis/bug21747_5 b/tests/bugs/vis/bug21747_5
new file mode 100755 (executable)
index 0000000..9c8e415
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 2
+
+puts "${BugNumber}"
+puts "Type=VERTICAL, Color from BLUE to RED, Direction from TOP to BOTTOM"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_6 b/tests/bugs/vis/bug21747_6
new file mode 100755 (executable)
index 0000000..8dc616b
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 3
+
+puts "${BugNumber}"
+puts "Type=DIAGONAL1, Color from RED to BLUE, Direction from LEFT TOP CORNER to RIGHT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_7 b/tests/bugs/vis/bug21747_7
new file mode 100755 (executable)
index 0000000..de49cfd
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 3
+
+puts "${BugNumber}"
+puts "Type=DIAGONAL1, Color from BLUE to RED, Direction from LEFT TOP CORNER to RIGHT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_8 b/tests/bugs/vis/bug21747_8
new file mode 100755 (executable)
index 0000000..66f29ca
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO ?OCC12345 ALL: An exception was caught"
+puts "TODO ?OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO ?OCC12345 ALL: TEST INCOMPLETE"
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 255
+set G1 0
+set B1 0
+set R2 0
+set G2 0
+set B2 255
+set Type 4
+
+puts "${BugNumber}"
+puts "Type=DIAGONAL2, Color from RED to BLUE, Direction from RIGHT TOP CORNER to LEFT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21747_9 b/tests/bugs/vis/bug21747_9
new file mode 100755 (executable)
index 0000000..e3ccf6f
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO ?OCC12345 ALL: An exception was caught"
+puts "TODO ?OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO ?OCC12345 ALL: TEST INCOMPLETE"
+puts "============"
+puts "OCC21747"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Implementation of gradient background style 
+# 
+# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
+# R1\G1\B1 - First color [0..255]
+# R2\G2\B2 - Second color [0..255]
+# Type 0 to 8
+# 0 = NONE,
+# 1 = HORIZONTAL,
+# 2 = VERTICAL,
+# 3 = DIAGONAL1,
+# 4 = DIAGONAL2,
+# 5 = CORNER1,
+# 6 = CORNER2,
+# 7 = CORNER3,
+# 8 = CORNER4
+#######################################################################
+
+set BugNumber OCC21747
+
+vinit
+
+set R1 0
+set G1 0
+set B1 255
+set R2 255
+set G2 0
+set B2 0
+set Type 4
+
+puts "${BugNumber}"
+puts "Type=DIAGONAL2, Color from BLUE to RED, Direction from RIGHT TOP CORNER to LEFT BOTTOM CORNER"
+puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
+
+vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug21970 b/tests/bugs/vis/bug21970
new file mode 100755 (executable)
index 0000000..b95c5a1
--- /dev/null
@@ -0,0 +1,50 @@
+puts "TODO OCC11111 ALL: Faulty OCC21970"
+puts "TODO OCC11111 ALL: Error : The command is not valid. The square is"
+puts "TODO OCC11111 ALL: Error : The square of result shape is 0"
+puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
+
+puts "============"
+puts "OCC21970"
+puts "============"
+puts ""
+######################################################
+# FPE exception in BRepMesh on degenerate face not handled in OCCT DRAW on WNT built with VC8 by WOK
+######################################################
+
+set BugNumber OCC21970
+
+restore [locate_data_file OCC21970-stringers-f485.brep] result
+
+set text [incmesh result 1]
+set r [regexp {Failure} $text]
+
+set status1 0
+if {$r == 1} {
+   set status1 1
+}
+
+set square 624989
+
+set nb_v_good 3806
+set nb_e_good 3808
+set nb_w_good 756
+set nb_f_good 730
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 9101
+
+if { ${status1} != 0} {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+vinit
+tclean result
+vsetdispmode 1
+vdisplay result
+vfit
+
+set 3dviewer 1
diff --git a/tests/bugs/vis/bug22018 b/tests/bugs/vis/bug22018
new file mode 100755 (executable)
index 0000000..a7406eb
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC22018"
+puts "============"
+puts ""
+#######################################################################
+# Select3D_SensitiveCircle::Matches(): DMin parameter left uninitialized
+#######################################################################
+
+set BugNumber OCC22018
+
+vinit
+
+vpoint p1 -5 0 0
+vpoint p2 0 5 0
+vpoint p3 5 0 0
+
+vcircle c p1 p2 p3 1
+
+vpoint p4 0 0 0
+vpoint p5 5 5 0
+vpoint p6 10 0 0
+
+vcircle c1 p4 p5 p6 1
+
+verase p1 p2 p3 p4 p5 p6
+
+vfit
+vtop
+
+set White_R 1
+set White_G 1
+set White_B 0.94901901483535767
+
+set Select_R 0
+set Select_G 1
+set Select_B 1
+
+set x1 150
+set x2 300
+set y  200
+
+vmoveto 0 0
+vmoveto 0 0
+
+checkcolor ${x1} ${y} ${White_R} ${White_G} ${White_B}
+checkcolor ${x2} ${y} ${White_R} ${White_G} ${White_B}
+
+vmoveto ${x1} ${y}
+vmoveto ${x1} ${y}
+
+checkcolor ${x1} ${y} ${Select_R} ${Select_G} ${Select_B}
+checkcolor ${x2} ${y} ${White_R} ${White_G} ${White_B}
+
+vmoveto ${x2} ${y}
+vmoveto ${x2} ${y}
+
+checkcolor ${x1} ${y} ${White_R} ${White_G} ${White_B}
+checkcolor ${x2} ${y} ${Select_R} ${Select_G} ${Select_B}
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug22149 b/tests/bugs/vis/bug22149
new file mode 100755 (executable)
index 0000000..8058e5f
--- /dev/null
@@ -0,0 +1,15 @@
+puts "================"
+puts "OCC22149"
+puts "================"
+puts ""
+#######################################################################
+# Strings with Japanese characters can not be displayed in 3D viewer
+#######################################################################
+
+set BugNumber OCC22149
+
+vinit
+vdrawtext HELLO 0 0 0 0 255 0 0 0 0 0 50 1
+vdrawtext \x30\x42 0 0 200 255 0 0 0 0 0 0 50 0 Mona 1
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug22188 b/tests/bugs/vis/bug22188
new file mode 100755 (executable)
index 0000000..8814a27
--- /dev/null
@@ -0,0 +1,97 @@
+puts "TODO OCC11111 ALL: Faulty OCC22188"
+
+puts "============"
+puts "OCC22188"
+puts "Customer : TATA"
+puts "============"
+puts ""
+#######################################################################
+# Visualization of solid fails (in BRepMesh_FastDiscretFace) 
+#######################################################################
+
+set BugNumber OCC22188
+
+restore [locate_data_file OCC22188.brep] result
+tclean result
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+regexp {Maximal deflection +([-0-9.+eE]+)} $tri_info full defl
+
+if { [string compare $tcl_platform(os) "Windows"] == 0 }  {
+   set good_tri  6114
+   set good_nod  3080
+   set good_defl 0.50050406431775729
+} else {
+    set good_tri  6148
+    set good_nod  3097
+    set good_defl 0.5153628044287929
+}
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 0.1
+set status 0
+
+set triangle_percent [GetPercent ${tri} ${good_tri}]
+puts "triangle_percent = ${triangle_percent}"
+if { ${triangle_percent} > ${percent_max} } {
+   puts "triangle: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "triangle: OK ${BugNumber}"
+}
+
+set node_percent [GetPercent ${nod} ${good_nod}]
+puts "node_percent = ${node_percent}"
+if { ${node_percent} > ${percent_max} } {
+   puts "node: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "node: OK ${BugNumber}"
+}
+
+set deflection_percent [GetPercent ${defl} ${good_defl}]
+puts "deflection_percent = ${deflection_percent}"
+if { ${deflection_percent} > ${percent_max} } {
+   puts "deflection: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "deflection: OK ${BugNumber}"
+}
+
+set square 33561.4
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+set only_screen 0
diff --git a/tests/bugs/vis/bug22795 b/tests/bugs/vis/bug22795
new file mode 100755 (executable)
index 0000000..3646569
--- /dev/null
@@ -0,0 +1,66 @@
+puts "================"
+puts "OCC22795"
+puts "================"
+puts ""
+#########################################################################################################
+# Make possible to display some presentable objecys in overlay of others, groupped by display priority 
+#########################################################################################################
+
+set BugNumber OCC22795
+
+box b 10 10 10
+box s 10 10 10
+ttranslate s 10 0 0
+vdisplay b s
+vsetdispmode b 1
+vsetdispmode s 1
+vfit
+vzlayer add
+vzlayer add
+vzlayer add
+set info1 [ vzlayer get ]
+
+vzlayer del 1
+
+set info2 [ vzlayer get ]
+
+set status_vzlayer 0
+
+if { [string compare $info1 "0 1 2 3"] == 0 && [string compare $info1 "0 2 3"] == 0 } {
+   set status_vzlayer 0
+} else {
+   set status_vzlayer 1
+}
+
+vobjzlayer set b 2
+set info3 [ vobjzlayer get b ]
+set word8 [string compare ${info3} "Z layer id: 2"]
+
+vobjzlayer set s 3
+set info4 [ vobjzlayer get s ]
+set word9 [string compare ${info4} "Z layer id: 3"]
+
+vzlayer del 3
+set info5 [ vobjzlayer get s ]
+set word10 [string compare ${info5} "Z layer id: 0"]
+
+set status_vobjzlayer 0
+
+if { ${word8} == 0 && ${word9} == 0 && ${word10} == 0 } {
+    set status_vobjzlayer 0
+} else {
+    set status_vobjzlayer 1
+}
+
+if { ${status_vzlayer} != 0 && ${status_vobjzlayer} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+
+
+
+
+
+
diff --git a/tests/bugs/vis/bug22847 b/tests/bugs/vis/bug22847
new file mode 100755 (executable)
index 0000000..3c1a659
--- /dev/null
@@ -0,0 +1,51 @@
+puts "============"
+puts "OCC22847"
+puts "============"
+puts ""
+##############################################################################################
+# DrawTrSurf: provide interface for configuring visualization properties in axonometric viewer
+##############################################################################################
+
+set BugNumber OCC22847
+
+axo
+point p1 0 0 0
+point p2 30 0 0
+point p3 60 0 0
+point p4 90 0 0
+point p5 120 0 0
+point a1 0 30 0
+point a2 0 60 0
+point a3 0 90 0
+point a4 0 120 0
+point b1 0 0 30
+point b2 0 0 60
+point b3 0 0 90
+point b4 0 0 120
+
+changepointcolor white p1
+changepointcolor red p2
+changepointcolor blue p3
+changepointcolor green p4
+changepointcolor cyan p5
+changepointcolor golden a1
+changepointcolor brown a3
+changepointcolor orange a4
+changepointcolor pink a2
+changepointcolor coral b1
+changepointcolor violet b2
+changepointcolor pink b3
+changepointcolor pink b4
+
+changepointmarker square p5
+changepointmarker diamond p4
+changepointmarker x p3
+changepointmarker plus a4
+changepointmarker circle a3
+changepointmarker circle b3
+
+setpointcolor white
+setpointmarker square
+point f 100 50 50
+
+puts "It's a visualization bug. There are not results. See photo."
\ No newline at end of file
diff --git a/tests/bugs/vis/bug22849 b/tests/bugs/vis/bug22849
new file mode 100755 (executable)
index 0000000..0a26726
--- /dev/null
@@ -0,0 +1,40 @@
+puts "TODO ?OCC11111 ALL: Faulty OCC22849"
+
+puts "============"
+puts "OCC22849"
+puts "============"
+puts ""
+#######################################################################
+# Bad import of a STEP file (error during triangulation)
+#######################################################################
+
+set BugNumber OCC22849
+
+catch {pload XDE}
+
+stepread [locate_data_file OCC22849-2520-6002_step.stp] a *
+checkshape a_1
+##tole a_1
+incmesh a_1 0.1
+tricheck a_1
+explode a_1 f
+
+set info1 [fromshape a_1_67]
+regexp {Shape a_1_67 : imported from entity ([-0-9.+eE]+:#[-0-9.+eE]+)} $info1 full entity1
+set word1 [string compare $entity1 4973:#5009]
+
+set info2 [fromshape a_1_73]
+regexp {Shape a_1_73 : imported from entity ([-0-9.+eE]+:#[-0-9.+eE]+)} $info2 full entity2
+set word2 [string compare $entity2 5157:#5193]
+
+set info3 [fromshape a_1_91]
+regexp {Shape a_1_91 : imported from entity ([-0-9.+eE]+:#[-0-9.+eE]+)} $info3 full entity3
+set word3 [string compare $entity3 5659:#5695]
+
+if { ${word1} == 0 && ${word2} == 0 && ${word3} == 0 } {
+  puts "OK ${BugNumber}"
+} else {
+  puts "Faulty ${BugNumber}"
+}
+
+set 3dviewer 1
diff --git a/tests/bugs/vis/bug22879 b/tests/bugs/vis/bug22879
new file mode 100755 (executable)
index 0000000..6bbcfca
--- /dev/null
@@ -0,0 +1,35 @@
+puts "============"
+puts "OCC22879"
+puts "============"
+puts ""
+#######################################################################
+# Possible bug in Opengl_togl_begin_layer_mode.cxx
+#######################################################################
+
+set BugNumber OCC22879
+
+vinit
+
+voverlaytext "Text Height=14" 10.0 10.0 14.0
+voverlaytext "Text Height=25" 10.0 40.0 25.0
+voverlaytext "Arial" 10.0 60.0 18.0 "Arial" 255.0 0.0 0.0
+voverlaytext "Times New Roman" 10.0 80.0 20.0 "Times New Roman" 0.0 0.0 255.0
+voverlaytext "Subtitle" 10.0 110.0 20.0 "Arial" 0.0 255.0 0.0 subtitle 76.5 76.5 76.5
+voverlaytext "Decal" 10.0 140.0 20.0 "Arial" 0.0 0.0 255.0 decal 255.0 0.0 0.0
+voverlaytext "Blend" 10.0 170.0 20.0 "Arial" 255.0 0.0 0.0 blend
+box b 50 -700 450 50 50 50
+vdisplay b
+vsetdispmode 1
+vsetcolor b ANTIQUEWHITE
+
+checkcolor 24 55 0.75686198472976685 0 0
+checkcolor 16 76 0 0 0.50195999999999996
+checkcolor 26 107 0.18039199709892273 0.5686269998550415 0.180392
+checkcolor 34 114 0.29803898930549622 0.29803898930549622 0.298039
+checkcolor 24 131 0.61960697174072266 0 0
+checkcolor 18 139 0.21568599343299866 0 0.78431300000000004
+checkcolor 56 160 1 0 0
+checkcolor 30 160 0 1 0.90980300000000003
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug22900 b/tests/bugs/vis/bug22900
new file mode 100755 (executable)
index 0000000..3d3e9fc
--- /dev/null
@@ -0,0 +1,32 @@
+puts "================"
+puts "OCC22900"
+puts "================"
+puts ""
+#######################################################################################
+# Problem with shape displaying in shading mode
+######################################################################################
+
+set BugNumber OCC22900
+
+set x1 204
+set y1 202
+
+vertex v1 0 0 0
+vertex v2 0 0 30
+edge e1 v1 v2
+pcone con1 5 0 10
+ttranslate con1 0 0 30
+compound con1 e1 c1
+don c1
+fit
+vinit
+vdisplay c1
+vfit
+vsetcolor c1 RED
+vsetcolor c1 GREEN
+vsetdispmode 1
+vsetcolor c1 RED
+
+checkcolor ${x1} ${y1}] 1 0 0
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug22906 b/tests/bugs/vis/bug22906
new file mode 100755 (executable)
index 0000000..51612a3
--- /dev/null
@@ -0,0 +1,55 @@
+puts "TODO ?OCC11111 ALL: An exception was caught"
+puts "TODO ?OCC11111 ALL: Exception"
+puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
+
+puts "================"
+puts "OCC22906"
+puts "================"
+puts ""
+#######################################################################################
+# Gradient background is clipped by planes
+######################################################################################
+
+set BugNumber OCC22906
+set x1 73
+set y1 338
+
+set x2 144
+set y2 23
+
+set x3 377
+set y3 123
+
+set x4 87
+set y4 232
+
+vinit
+vsetgradientbg 255 0 0 0 0 255 4
+set Color1 [QAGetPixelColor ${x1} ${y1}]
+set Color2 [QAGetPixelColor ${x2} ${y2}]
+set Color3 [QAGetPixelColor ${x3} ${y3}]
+set Color4 [QAGetPixelColor ${x4} ${y4}]
+vclipplane 0.1 0 0 1 0 0
+box b 100 100 100
+vdisplay b
+vsetdispmode 1
+set ColorRes1 [QAGetPixelColor ${x1} ${y1}]
+set ColorRes2 [QAGetPixelColor ${x2} ${y2}]
+set ColorRes3 [QAGetPixelColor ${x3} ${y3}]
+set ColorRes4 [QAGetPixelColor ${x4} ${y4}]
+
+set status 0
+if { ${Color1} == ${ColorRes1} && ${Color2} == ${ColorRes2} && ${Color3} == ${ColorRes3} && ${Color4} == ${ColorRes4}} {
+    set status 0
+} else {
+    set status 1
+}
+
+# Resume
+puts ""
+if { ${status} != 0} {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+set only_screen 1
diff --git a/tests/bugs/vis/bug23012 b/tests/bugs/vis/bug23012
new file mode 100755 (executable)
index 0000000..0dfdeb5
--- /dev/null
@@ -0,0 +1,54 @@
+puts "================"
+puts "OCC23012"
+puts "================"
+puts ""
+#######################################################################################
+# Detection gives incorrect results
+######################################################################################
+
+set BugNumber OCC23012
+
+catch {pload XDE}
+
+set x1 210
+set y1 184
+
+set x2 205
+set y2 180
+
+stepread [locate_data_file OCC23012-Sample_3.stp] a *
+stepread [locate_data_file OCC23012-Sample_9.stp] b *
+vdisplay a_1 b_1
+vsetdispmode a_1 1
+vsetdispmode b_1 1
+vselprecision
+vselprecision 1 0.1
+
+set ColorBefore [QAGetPixelColor ${x1} ${y1}]
+set R1 [lindex ${ColorBefore} 2]
+set G1 [lindex ${ColorBefore} 5]
+set B1 [lindex ${ColorBefore} 8]
+
+vmoveto ${x2} ${y2}
+
+set ColorAfter [QAGetPixelColor ${x1} ${y1}]
+set R2 [lindex ${ColorAfter} 2]
+set G2 [lindex ${ColorAfter} 5]
+set B2 [lindex ${ColorAfter} 8]
+
+set check_color 0
+if { ${R1} == ${R2} && ${G1} == ${G2} && ${B1} == ${B2} } {
+    set check_color 0
+} else {
+    set check_color 1
+}
+
+# Resume
+puts ""
+if { ${check_color} != 0} {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+vfit
+set only_screen 1
diff --git a/tests/bugs/vis/bug23067 b/tests/bugs/vis/bug23067
new file mode 100755 (executable)
index 0000000..4942cc5
--- /dev/null
@@ -0,0 +1,20 @@
+puts "==========="
+puts "OCC23067"
+puts "==========="
+puts ""
+################################################################################
+# OpenGl package API needed by UserDraw feature is not exported
+################################################################################
+
+set BugNumber OCC23067
+set x1 321
+set y1 159
+
+vinit
+vuserdraw a
+vfit
+checkcolor ${x1} ${y1} 1 1 0
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23069 b/tests/bugs/vis/bug23069
new file mode 100755 (executable)
index 0000000..8662a8c
--- /dev/null
@@ -0,0 +1,74 @@
+puts "TODO OCC11111 ALL: Faulty OCC23069"
+puts "TODO OCC11111 ALL: FPS_percent"
+puts "TODO ?OCC11111 ALL: CPU_percent"
+
+puts "==========="
+puts "OCC23069"
+puts "==========="
+puts ""
+################################################################################
+# OpenGL state extraction for GL_RENDER_MODE significantly impact performance
+################################################################################
+
+set BugNumber OCC23069
+
+vinit
+for {set anInter 1} {$anInter <= 1000} {incr anInter} {
+   box b${anInter} [expr $anInter * 20] 0 0 10 20 30
+   vdisplay b${anInter}
+}
+vfit
+
+set Log [vfps]
+
+#
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+        set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 20.0
+
+set good_FPS 4.2
+set good_CPU 15.0
+
+set status 0
+if { [llength ${Log}] == 5} {
+    if { [regexp {FPS: [-0-9.+eE]+} $Log] && [regexp {CPU: [-0-9.+eE]+ msec} $Log] } {
+        set status 0
+        regexp {FPS: ([-0-9.+eE]+)} $Log full FPS
+        regexp {CPU: ([-0-9.+eE]+) msec} $Log full CPU
+
+        set CPU_percent [GetPercent ${CPU} ${good_CPU}]
+        if { ${CPU_percent} > ${percent_max} } {
+            puts "CPU_percent = ${CPU_percent} ; CPU: Faulty"
+            set status 1
+        }
+
+        set FPS_percent [GetPercent ${FPS} ${good_FPS}]
+        if { ${FPS_percent} > ${percent_max} } {
+            puts "FPS_percent = ${FPS_percent} ; FPS: Faulty"
+            set status 1
+        }
+    } else {
+       set status 1
+    }
+} else {
+   set status 1
+}
+
+# Resume
+puts ""
+if { ${status} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/vis/bug23102 b/tests/bugs/vis/bug23102
new file mode 100755 (executable)
index 0000000..a237fb7
--- /dev/null
@@ -0,0 +1,34 @@
+puts "================"
+puts "OCC23102"
+puts "================"
+puts ""
+###################################################################################################
+# Change the algorithm of rendering the 3d viewer background using tiled texture
+###################################################################################################
+
+set BugNumber OCC23102
+
+vinit
+vsetbg [locate_data_file OCC23102.bmp] TILED
+
+set x1 58
+set y1 4
+set R_bg 0.70196002721786499
+set G_bg 0.78039199113845825
+set B_bg 0.86274499999999998
+
+set Color [QAGetPixelColor ${x1} ${y1}]
+set R [lindex ${Color} 2]
+set G [lindex ${Color} 5]
+set B [lindex ${Color} 8]
+
+#Resume
+puts ""
+if { $R != ${R_bg} && $G != ${G_bg} && $B != ${B_bg} } {
+   puts "OK ${BugNumber}"
+} else {
+  puts "Faulty ${BugNumber}"
+}
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23120_1 b/tests/bugs/vis/bug23120_1
new file mode 100755 (executable)
index 0000000..1f93639
--- /dev/null
@@ -0,0 +1,26 @@
+puts "================"
+puts "OCC23120"
+puts "================"
+puts ""
+######################################
+# Transform persistence is not restored
+######################################
+
+set BugNumber OCC23120
+
+catch {pload XDE}
+
+box b1 10 20 30
+box b2 10 20 30
+ttranslate b2 50 50 0
+vinit
+vdisplay b1
+vsettransmode b1 32 0 0 0 0 0
+vdisplay b2
+vfit
+vsetdispmode 1
+vzoom 0.5
+vpan 100 0
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23123 b/tests/bugs/vis/bug23123
new file mode 100755 (executable)
index 0000000..3c08663
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC23123"
+puts "============"
+puts ""
+#######################################################################
+# Bug/Regression in visualization of XDE documents in shaded mode
+#######################################################################
+
+set BugNumber OCC23123
+
+catch { pload XDE }
+
+ReadStep D [locate_data_file OCC23123-test.step]
+XShow D
+vfit
+vsetdispmode 1
+
+if { [string compare $tcl_platform(platform) "windows"] != 0 } {
+    set x1 150
+    set y1 210
+} else {
+    set x1 240
+    set y1 299
+}
+checkcolor $x1 $y1 0.67 0.67 0.67
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23153 b/tests/bugs/vis/bug23153
new file mode 100755 (executable)
index 0000000..e20a3e5
--- /dev/null
@@ -0,0 +1,83 @@
+puts "============"
+puts "OCC23153"
+puts "============"
+puts ""
+#######################################################################
+# BRepMesh can't apply a mesh for a face of attached shape
+#######################################################################
+
+pload XDE
+set BugNumber OCC23153
+
+set TheFileName OCC23153-long_furrowed_shape.stp
+decho off
+stepread [locate_data_file $TheFileName] a *
+decho on
+tpcompound result
+
+set square 14684.4
+set nb_v_good 1152
+set nb_e_good 1735
+set nb_w_good 635
+set nb_f_good 581
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 4106
+
+vinit
+vsetdispmode 1
+vdisplay result
+vtop
+vfit
+
+set status 0
+set RED 0
+set GREEN 0
+set BLUE 0
+set x1 223
+set y1 195
+set Color1 [QAGetPixelColor ${x1} ${y1}]
+regexp {RED +: +([-0-9.+eE]+)} $Color1 full R1
+regexp {GREEN +: +([-0-9.+eE]+)} $Color1 full G1
+regexp {BLUE +: +([-0-9.+eE]+)} $Color1 full B1
+if { $R1 == ${RED} && $G1 == ${GREEN} && $B1 == ${BLUE} } {
+    set status 1
+    puts "Faulty Color1"
+}
+
+set x2 224
+set y2 240
+set Color2 [QAGetPixelColor ${x2} ${y2}]
+regexp {RED +: +([-0-9.+eE]+)} $Color2 full R2
+regexp {GREEN +: +([-0-9.+eE]+)} $Color2 full G2
+regexp {BLUE +: +([-0-9.+eE]+)} $Color2 full B2
+
+if { $R2 == ${RED} && $G2 == ${GREEN} && $B2 == ${BLUE} } {
+    set status 1
+    puts "Faulty Color2"
+}
+
+set x3 223
+set y3 266
+set Color3 [QAGetPixelColor ${x3} ${y3}]
+regexp {RED +: +([-0-9.+eE]+)} $Color3 full R3
+regexp {GREEN +: +([-0-9.+eE]+)} $Color3 full G3
+regexp {BLUE +: +([-0-9.+eE]+)} $Color3 full B3
+if { $R3 == ${RED} && $G3 == ${GREEN} && $B3 == ${BLUE} } {
+    set status 1
+    puts "Faulty Color3"
+}
+
+# Resume
+puts ""
+if { ${status} == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
+set only_screen 1
+
+
diff --git a/tests/bugs/vis/bug23219 b/tests/bugs/vis/bug23219
new file mode 100755 (executable)
index 0000000..c7ea143
--- /dev/null
@@ -0,0 +1,549 @@
+puts "============"
+puts "OCC23219"
+puts "============"
+puts ""
+#######################################################################
+# Triangulation is not built on a planar face
+#######################################################################
+
+set BugNumber OCC23219
+
+pload XDE
+
+polyline ow \
+-22.0 0.0 0 \
+0.0 0.0 0 \
+0.0 24.0 0 \
+-22.0 24.0 0 \
+-22.0 0.0 0
+
+polyline iw \
+-5.22496 1.3 0 \
+-5.2317762 1.351774161 0 \
+-5.251760281 1.40002 0 \
+-5.283550362 1.441449638 0 \
+-5.32498 1.473239719 0 \
+-5.373225839 1.4932238 0 \
+-5.37898 1.49467 0 \
+-5.382921578 1.495774705 0 \
+-5.396851629 1.50287242 0 \
+-5.40790658 1.513927371 0 \
+-5.415004295 1.52785742 0 \
+-5.41745 1.543299 0 \
+-5.415004295 1.55874058 0 \
+-5.40790658 1.572670629 0 \
+-5.396851629 1.58372558 0 \
+-5.38292158 1.590823295 0 \
+-5.37748 1.59226 0 \
+-5.363526536 1.595551323 0 \
+-5.306234 1.619282669 0 \
+-5.257035787 1.657033787 0 \
+-5.219284669 1.706232 0 \
+-5.195553323 1.763524536 0 \
+-5.187459 1.825007 0 \
+-5.195553323 1.886489464 0 \
+-5.20961 1.92517 0 \
+-5.2099 1.92578 0 \
+-5.20997 1.92592 0 \
+-5.27024 2.05457 0 \
+-5.272514295 2.06032842 0 \
+-5.27496 2.07577 0 \
+-5.27496 2.62577 0 \
+-5.27496 2.62579 0 \
+-5.267620439 2.67207019 0 \
+-5.24632019 2.713874275 0 \
+-5.23184 2.73095 0 \
+-5.23103 2.73177 0 \
+-4.33177 3.63103 0 \
+-4.275805109 3.699223611 0 \
+-4.234216002 3.777031324 0 \
+-4.208605571 3.861457607 0 \
+-4.199958 3.949258 0 \
+-4.19996 3.94926 0 \
+-4.19996 7.34923 0 \
+-4.197514295 7.36467158 0 \
+-4.19524 7.37043 0 \
+-4.13527 7.49842 0 \
+-4.1352 7.49856 0 \
+-4.1349 7.49922 0 \
+-4.13476 7.49952 0 \
+-4.12666 7.51911 0 \
+-4.12664 7.51916 0 \
+-4.07822 7.65291 0 \
+-4.07165758 7.665281629 0 \
+-4.06656 7.67124 0 \
+-3.60693 8.13087 0 \
+-3.60689 8.13091 0 \
+-3.60677 8.13103 0 \
+-3.550805109 8.199223611 0 \
+-3.509216002 8.277031324 0 \
+-3.483605571 8.361457607 0 \
+-3.474958 8.449258 0 \
+-3.47496 8.44926 0 \
+-3.47496 13.87574 0 \
+-3.47496 13.87575 0 \
+-3.47496 13.8758 0 \
+-3.467620439 13.92207019 0 \
+-3.44632019 13.96387428 0 \
+-3.43184 13.98095 0 \
+-3.43103 13.98177 0 \
+-2.08176 15.33104 0 \
+-2.0813 15.3315 0 \
+-2.025802738 15.39922572 0 \
+-1.98421548 15.47702998 0 \
+-1.958606187 15.56145251 0 \
+-1.949959 15.649249 0 \
+-1.94996 15.64926 0 \
+-1.94996 18.65074 0 \
+-1.958607598 18.7385404 0 \
+-1.984218029 18.82296668 0 \
+-2.025807109 18.90077439 0 \
+-2.08135 18.96854 0 \
+-2.08193 18.96913 0 \
+-2.28525 19.17245 0 \
+-2.29034258 19.17841237 0 \
+-2.297440295 19.19234242 0 \
+-2.29881 19.19744 0 \
+-2.35808 19.47762 0 \
+-2.35812 19.47782 0 \
+-2.35813 19.47786 0 \
+-2.362738183 19.49706749 0 \
+-2.400204838 19.58752 0 \
+-2.459805677 19.66519332 0 \
+-2.537479 19.72479416 0 \
+-2.627931506 19.76226082 0 \
+-2.724999 19.77504 0 \
+-2.822066494 19.76226082 0 \
+-2.912519 19.72479416 0 \
+-2.990192323 19.66519332 0 \
+-3.049793162 19.58752 0 \
+-3.087259817 19.49706749 0 \
+-3.100039 19.4 0 \
+-3.087259817 19.30293251 0 \
+-3.049793162 19.21248 0 \
+-2.990192323 19.13480668 0 \
+-2.912519 19.07520584 0 \
+-2.822066494 19.03773918 0 \
+-2.80286 19.03313 0 \
+-2.80282 19.03312 0 \
+-2.80262 19.03308 0 \
+-2.52244 18.97381 0 \
+-2.51733842 18.9724453 0 \
+-2.503408371 18.96534758 0 \
+-2.49745 18.96025 0 \
+-2.29396 18.75676 0 \
+-2.29386 18.75667 0 \
+-2.29293 18.75573 0 \
+-2.27868172 18.73888015 0 \
+-2.257380051 18.69707328 0 \
+-2.25004 18.65073 0 \
+-2.25004 18.40412 0 \
+-2.252485705 18.38867842 0 \
+-2.25958342 18.37474837 0 \
+-2.270638371 18.36369342 0 \
+-2.28456842 18.3565957 0 \
+-2.30001 18.35415 0 \
+-2.315451578 18.3565957 0 \
+-2.329381629 18.36369342 0 \
+-2.34043658 18.37474837 0 \
+-2.347534295 18.38867842 0 \
+-2.34998 18.40364 0 \
+-2.362741183 18.49706749 0 \
+-2.400207838 18.58752 0 \
+-2.459808677 18.66519332 0 \
+-2.537482 18.72479416 0 \
+-2.627934506 18.76226082 0 \
+-2.725002 18.77504 0 \
+-2.822069494 18.76226082 0 \
+-2.912522 18.72479416 0 \
+-2.990195323 18.66519332 0 \
+-3.049796162 18.58752 0 \
+-3.087262817 18.49706749 0 \
+-3.09187 18.47786 0 \
+-3.09188 18.47782 0 \
+-3.09192 18.47762 0 \
+-3.15119 18.19744 0 \
+-3.152554705 18.19233842 0 \
+-3.15965242 18.17840837 0 \
+-3.16475 18.17245 0 \
+-3.36807 17.96913 0 \
+-3.36811 17.96909 0 \
+-3.36823 17.96897 0 \
+-3.36863 17.96857 0 \
+-3.424184891 17.90078639 0 \
+-3.465773998 17.82297868 0 \
+-3.491384429 17.7385524 0 \
+-3.49658 17.70639 0 \
+-3.49667 17.70575 0 \
+-3.500035 17.650819 0 \
+-3.50004 17.65079 0 \
+-3.50004 17.65074 0 \
+-3.50004 15.97425 0 \
+-3.50004 15.9742 0 \
+-3.507379561 15.92792981 0 \
+-3.52867981 15.88612572 0 \
+-3.54316 15.86905 0 \
+-3.54397 15.86823 0 \
+-5.34323 14.06897 0 \
+-5.399194891 14.00077639 0 \
+-5.440783998 13.92296868 0 \
+-5.466394429 13.8385424 0 \
+-5.475042 13.750742 0 \
+-5.47504 13.75074 0 \
+-5.47504 8.57425 0 \
+-5.47504 8.57423 0 \
+-5.482379561 8.527959815 0 \
+-5.50367981 8.486155725 0 \
+-5.51768 8.46956 0 \
+-5.5177 8.46954 0 \
+-6.10376 7.88344 0 \
+-6.109722371 7.87834742 0 \
+-6.12208 7.87178 0 \
+-6.25542 7.82352 0 \
+-6.25593 7.82334 0 \
+-6.293771 7.805726671 0 \
+-6.342967142 7.767977142 0 \
+-6.380716671 7.718781 0 \
+-6.404447018 7.661490876 0 \
+-6.412541 7.600011 0 \
+-6.404447018 7.538531124 0 \
+-6.380716671 7.481241 0 \
+-6.342967142 7.432044858 0 \
+-6.293771 7.394295329 0 \
+-6.236480876 7.370564982 0 \
+-6.175001 7.362471 0 \
+-6.113521124 7.370564982 0 \
+-6.056231 7.394295329 0 \
+-6.007034858 7.432044858 0 \
+-5.969285329 7.481241 0 \
+-5.95224 7.51752 0 \
+-5.95218 7.51768 0 \
+-5.95164 7.51916 0 \
+-5.90322 7.65291 0 \
+-5.89665758 7.665281629 0 \
+-5.89156 7.67124 0 \
+-5.30693 8.25587 0 \
+-5.30689 8.25591 0 \
+-5.30677 8.25603 0 \
+-5.250805109 8.324223611 0 \
+-5.209216002 8.402031324 0 \
+-5.183605571 8.486457607 0 \
+-5.174958 8.574258 0 \
+-5.17496 8.57426 0 \
+-5.17496 13.75074 0 \
+-5.17496 13.75075 0 \
+-5.17496 13.7508 0 \
+-5.167620439 13.79707019 0 \
+-5.14632019 13.83887428 0 \
+-5.13184 13.85595 0 \
+-5.13103 13.85677 0 \
+-3.33176 15.65604 0 \
+-3.3313 15.6565 0 \
+-3.275802738 15.72422572 0 \
+-3.23421548 15.80202998 0 \
+-3.208606187 15.88645251 0 \
+-3.199959 15.974249 0 \
+-3.19996 15.97426 0 \
+-3.19996 17.39588 0 \
+-3.197514295 17.41132158 0 \
+-3.19041658 17.42525163 0 \
+-3.179361629 17.43630658 0 \
+-3.16543158 17.4434043 0 \
+-3.14999 17.44585 0 \
+-3.13454842 17.4434043 0 \
+-3.120618371 17.43630658 0 \
+-3.10956342 17.42525163 0 \
+-3.102465705 17.41132158 0 \
+-3.10002 17.39636 0 \
+-3.087258817 17.30293251 0 \
+-3.07357 17.2616 0 \
+-3.07321 17.2607 0 \
+-3.049794162 17.21248 0 \
+-3.03957 17.19579 0 \
+-3.03942 17.19556 0 \
+-3.03934 17.19544 0 \
+-3.03907 17.19503 0 \
+-3.03904 17.19498 0 \
+-2.88313 16.95541 0 \
+-2.877485705 16.94359158 0 \
+-2.87504 16.92815 0 \
+-2.87504 15.77425 0 \
+-2.87504 15.77423 0 \
+-2.882379561 15.72796981 0 \
+-2.90367981 15.68616572 0 \
+-2.91897 15.66827 0 \
+-4.49324 14.09396 0 \
+-4.4937 14.0935 0 \
+-4.549197262 14.02577428 0 \
+-4.59078452 13.94797002 0 \
+-4.616393813 13.8635475 0 \
+-4.625041 13.775751 0 \
+-4.62504 13.77575 0 \
+-4.62504 8.49924 0 \
+-4.62504 8.49922 0 \
+-4.632380051 8.452936725 0 \
+-4.65368172 8.411129847 0 \
+-4.66794 8.39427 0 \
+-4.66886 8.39333 0 \
+-4.66897 8.39323 0 \
+-5.17876 7.88344 0 \
+-5.184722371 7.87834742 0 \
+-5.19708 7.87178 0 \
+-5.33042 7.82352 0 \
+-5.33093 7.82334 0 \
+-5.368771 7.805726671 0 \
+-5.417967142 7.767977142 0 \
+-5.455716671 7.718781 0 \
+-5.479447018 7.661490876 0 \
+-5.487541 7.600011 0 \
+-5.479447018 7.538531124 0 \
+-5.455716671 7.481241 0 \
+-5.417967142 7.432044858 0 \
+-5.368771 7.394295329 0 \
+-5.311480876 7.370564982 0 \
+-5.250001 7.362471 0 \
+-5.188521124 7.370564982 0 \
+-5.131231 7.394295329 0 \
+-5.082034858 7.432044858 0 \
+-5.044285329 7.481241 0 \
+-5.02666 7.51911 0 \
+-5.02664 7.51916 0 \
+-5.02648 7.51958 0 \
+-4.97822 7.65292 0 \
+-4.97166058 7.665282629 0 \
+-4.96656 7.67124 0 \
+-4.45693 8.18087 0 \
+-4.45689 8.18091 0 \
+-4.45677 8.18103 0 \
+-4.400805109 8.249223611 0 \
+-4.359216002 8.327031324 0 \
+-4.333605571 8.411457607 0 \
+-4.324958 8.499258 0 \
+-4.32496 8.49926 0 \
+-4.32496 13.77575 0 \
+-4.317621418 13.82208401 0 \
+-4.296324009 13.86388252 0 \
+-4.28104 13.88177 0 \
+-2.70677 15.45603 0 \
+-2.650805109 15.52422361 0 \
+-2.609216002 15.60203132 0 \
+-2.583605571 15.68645761 0 \
+-2.574958 15.774258 0 \
+-2.57496 15.77426 0 \
+-2.57496 16.92815 0 \
+-2.572514295 16.94359158 0 \
+-2.56687 16.95541 0 \
+-2.41096 17.19498 0 \
+-2.41093 17.19503 0 \
+-2.41066 17.19544 0 \
+-2.41059 17.19554 0 \
+-2.41029 17.196 0 \
+-2.400201838 17.212478 0 \
+-2.362735183 17.30293051 0 \
+-2.34998 17.39636 0 \
+-2.347536295 17.41132158 0 \
+-2.34043858 17.42525163 0 \
+-2.329383629 17.43630658 0 \
+-2.31545358 17.4434043 0 \
+-2.300012 17.44585 0 \
+-2.28457042 17.4434043 0 \
+-2.270640371 17.43630658 0 \
+-2.25958542 17.42525163 0 \
+-2.252487705 17.41132158 0 \
+-2.25004 17.39588 0 \
+-2.25004 15.64925 0 \
+-2.25004 15.6492 0 \
+-2.257379561 15.60292981 0 \
+-2.27867981 15.56112572 0 \
+-2.29316 15.54405 0 \
+-2.29397 15.54323 0 \
+-3.64323 14.19397 0 \
+-3.699194891 14.12577639 0 \
+-3.740783998 14.04796868 0 \
+-3.766394429 13.9635424 0 \
+-3.775042 13.875742 0 \
+-3.77504 13.87574 0 \
+-3.77504 8.44925 0 \
+-3.77504 8.44923 0 \
+-3.782379561 8.402959815 0 \
+-3.80367981 8.361155725 0 \
+-3.81768 8.34456 0 \
+-3.8177 8.34454 0 \
+-4.27876 7.88344 0 \
+-4.284722371 7.87834742 0 \
+-4.29708 7.87178 0 \
+-4.43042 7.82352 0 \
+-4.43093 7.82334 0 \
+-4.468759 7.805730991 0 \
+-4.517959284 7.767978284 0 \
+-4.555711991 7.718778 0 \
+-4.579444336 7.661483052 0 \
+-4.587539 7.599998 0 \
+-4.579444336 7.538512948 0 \
+-4.56524 7.49952 0 \
+-4.5651 7.49922 0 \
+-4.56503 7.49908 0 \
+-4.50476 7.37043 0 \
+-4.502485705 7.36467158 0 \
+-4.50004 7.34923 0 \
+-4.50004 3.94923 0 \
+-4.50004 3.94921 0 \
+-4.507379561 3.902929815 0 \
+-4.52867981 3.861125725 0 \
+-4.54316 3.84405 0 \
+-4.54397 3.84323 0 \
+-5.44323 2.94397 0 \
+-5.443235401 2.943965401 0 \
+-5.499204891 2.875766389 0 \
+-5.52837 2.82532 0 \
+-5.53273142 2.818107371 0 \
+-5.543786371 2.80705242 0 \
+-5.55771642 2.799954705 0 \
+-5.573158 2.797509 0 \
+-5.588599578 2.799954705 0 \
+-5.602529629 2.80705242 0 \
+-5.60571 2.80956 0 \
+-5.60643 2.81016 0 \
+-5.662492 2.849782162 0 \
+-5.752944506 2.887248817 0 \
+-5.850012 2.900028 0 \
+-5.947079494 2.887248817 0 \
+-6.037532 2.849782162 0 \
+-6.115205323 2.790181323 0 \
+-6.15885 2.73776 0 \
+-6.15957342 2.736738371 0 \
+-6.170628371 2.72568342 0 \
+-6.18455842 2.718585705 0 \
+-6.2 2.71614 0 \
+-6.215441578 2.718585705 0 \
+-6.229371629 2.72568342 0 \
+-6.24042658 2.736738371 0 \
+-6.24115 2.73776 0 \
+-6.284806677 2.790193323 0 \
+-6.36248 2.849794162 0 \
+-6.452932506 2.887260817 0 \
+-6.55 2.90004 0 \
+-6.647067494 2.887260817 0 \
+-6.73752 2.849794162 0 \
+-6.815193323 2.790193323 0 \
+-6.874794162 2.71252 0 \
+-6.912260817 2.622067494 0 \
+-6.92504 2.525 0 \
+-6.912260817 2.427932506 0 \
+-6.874794162 2.33748 0 \
+-6.815193323 2.259806677 0 \
+-6.76039 2.21453 0 \
+-6.76008 2.21432 0 \
+-6.75834 2.21315 0 \
+-6.6886 2.16656 0 \
+-6.686988371 2.16543658 0 \
+-6.67593342 2.154381629 0 \
+-6.668835705 2.14045158 0 \
+-6.66639 2.12501 0 \
+-6.668835705 2.109568422 0 \
+-6.67593342 2.095638371 0 \
+-6.686988371 2.08458342 0 \
+-6.70091842 2.077485705 0 \
+-6.71636 2.07504 0 \
+-7.1 2.07504 0 \
+-7.10001 2.07504 0 \
+-7.15178675 2.068223459 0 \
+-7.200035 2.048238379 0 \
+-7.20005 2.04823 0 \
+-7.20959942 2.043977705 0 \
+-7.225041 2.041532 0 \
+-7.240482578 2.043977705 0 \
+-7.254412629 2.05107542 0 \
+-7.26546758 2.062130371 0 \
+-7.272565295 2.07606042 0 \
+-7.275011 2.091502 0 \
+-7.272565295 2.10694358 0 \
+-7.26692 2.11876 0 \
+-7.13596 2.31997 0 \
+-7.13593 2.32002 0 \
+-7.13566 2.32044 0 \
+-7.13559 2.32054 0 \
+-7.13529 2.321 0 \
+-7.125201838 2.337478 0 \
+-7.087735183 2.427930506 0 \
+-7.074956 2.524998 0 \
+-7.087735183 2.622065494 0 \
+-7.125201838 2.712518 0 \
+-7.184802677 2.790191323 0 \
+-7.262476 2.849792162 0 \
+-7.352928506 2.887258817 0 \
+-7.449996 2.900038 0 \
+-7.547063494 2.887258817 0 \
+-7.637516 2.849792162 0 \
+-7.715189323 2.790191323 0 \
+-7.774790162 2.712518 0 \
+-7.812256817 2.622065494 0 \
+-7.825036 2.524998 0 \
+-7.812256817 2.427930506 0 \
+-7.774790162 2.337478 0 \
+-7.76457 2.32079 0 \
+-7.76442 2.32056 0 \
+-7.76434 2.32044 0 \
+-7.76407 2.32002 0 \
+-7.76404 2.31997 0 \
+-7.61429 2.08988 0 \
+-7.608645705 2.07806158 0 \
+-7.6062 2.06262 0 \
+-7.608645705 2.047178422 0 \
+-7.61092 2.04142 0 \
+-7.66473 1.92658 0 \
+-7.6648 1.92644 0 \
+-7.6651 1.92578 0 \
+-7.66524 1.92548 0 \
+-7.679445018 1.886478876 0 \
+-7.687539 1.824999 0 \
+-7.679445018 1.763519124 0 \
+-7.655714671 1.706229 0 \
+-7.617965142 1.657032858 0 \
+-7.568769 1.619283329 0 \
+-7.511478876 1.595552982 0 \
+-7.449999 1.587459 0 \
+-7.388519124 1.595552982 0 \
+-7.36739 1.60229 0 \
+-7.36545158 1.602964295 0 \
+-7.35001 1.60541 0 \
+-7.33456842 1.602964295 0 \
+-7.320638371 1.59586658 0 \
+-7.30958342 1.584811629 0 \
+-7.302485705 1.57088158 0 \
+-7.30004 1.55544 0 \
+-7.30004 0.87504 0 \
+-7.30004 0.87501 0 \
+-7.30004 0.875 0 \
+-7.2932238 0.823225839 0 \
+-7.273239719 0.77498 0 \
+-7.241449638 0.733550362 0 \
+-7.20002 0.701760281 0 \
+-7.151774161 0.6817762 0 \
+-7.1 0.67496 0 \
+-5.424993 0.67496 0 \
+-5.373218839 0.6817762 0 \
+-5.324973 0.701760281 0 \
+-5.283543362 0.733550362 0 \
+-5.251753281 0.77498 0 \
+-5.2317692 0.823225839 0 \
+-5.224953 0.875 0 \
+-5.224953 0.875003 0 \
+-5.22496 1.3 0
+
+plane p 0 0 0 0 0 1
+mkface f p ow
+add iw f
+fixshape result f
+
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set x 200
+set y 200
+checkcolor $x $y 0.78 0.55 0.09
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23225 b/tests/bugs/vis/bug23225
new file mode 100755 (executable)
index 0000000..4b982d2
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC23363"
+puts "============"
+puts ""
+####################################################################################
+# ZBufer trihedron drawn without shading
+####################################################################################
+
+vinit
+vzbufftrihedron
+pcylinder p 100 200
+vdisplay p
+vsetdispmode p 1
+vsetinteriorstyle p 1
+
+set x_coord 59
+set y_coord 380
+checkcolor $x_coord $y_coord 0.54 0 0
+set x_coord 50
+set y_coord 362
+checkcolor $x_coord $y_coord 0 0.77 0
+set x_coord 41
+set y_coord 354
+checkcolor $x_coord $y_coord 0 0 0.62
+
+set only_screen 1
+
+
diff --git a/tests/bugs/vis/bug23226 b/tests/bugs/vis/bug23226
new file mode 100755 (executable)
index 0000000..6b2ae47
--- /dev/null
@@ -0,0 +1,465 @@
+puts "TODO OCC12345 ALL: Tcl Exception:"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+puts "============"
+puts "OCC23226"
+puts "============"
+puts ""
+#######################################################################
+# Extend OpenGl_Context to store map of shared GPU resources
+#######################################################################
+
+set BugNumber OCC23226
+
+#
+# This test is modified test cdl/934/C2
+#
+
+# this test performs automatical test of primitives array objects by pixel checking
+# this test ALSO DUMPS two result images (the primitives on the images should have
+# same contours, WIREFRAME OBJECTS ARE IN YELLOW-RED COLORS, SHADED OBJECTS ARE
+# BLUE-GREEN COLORS)
+
+set BUGNUMBER OCC22583
+set status 0
+set ImageName1 "occ22583-image1.png"
+set ImageName2 "occ22583-image2.png"
+
+# set window width and height, this values should correspond to a 
+# view window sizes to pass the test
+set view_width  405
+set view_height 405
+
+# colors used for tests
+# yellow
+set colorY_R 1
+set colorY_G 1
+set colorY_B 0
+
+# red
+set colorR_R 1
+set colorR_G 0
+set colorR_B 0
+
+# blue
+set colorB_R 0
+set colorB_G 1
+set colorB_B 1
+
+# green
+set colorG_R 0
+set colorG_G 1
+set colorG_B 0
+
+# limit of range where the pixels are tested (sets number of iterations)
+# 30 pixels in width and in height will be enough to test all primitives
+set limit_x 3
+set limit_y 3
+
+# this procedure is internal and will be removed at the end of the script
+# generate points for primitive
+proc generate_points {x y z r g b} {
+       # define top plane points
+       global pts01 pts02 pts03 pts04 pts05 pts06
+       set pts01 "v [expr "$x-5"] [expr "$y+5"] [expr "$z"]  n 0 0 -1 c $r $g $b"
+       set pts02 "v [expr "$x  "] [expr "$y+5"] [expr "$z"]  n 0 0 -1 c $r $g $b"
+       set pts03 "v [expr "$x  "] [expr "$y "] [expr "$z"]  n 0 0 -1 c $r $g $b"
+       set pts04 "v [expr "$x+5"] [expr "$y "] [expr "$z"]  n 0 0 -1 c $r $g $b"
+       set pts05 "v [expr "$x-5"] [expr "$y-5"] [expr "$z"]  n 0 0 -1 c $r $g $b"
+       set pts06 "v [expr "$x  "] [expr "$y-5"] [expr "$z"]  n 0 0 -1 c $r $g $b"
+}
+
+# this procedure is internal and will be removed at the end of the script
+# check pixels of primitive
+proc check_primitive {name1 r g b args} {
+       global limit_x limit_y view_width view_height
+       # show only primitive that we interested in to test
+       vdonly $name1 $args
+       vtop
+       vfit
+       
+       # move cursor not to select shape
+       vmoveto 0 0
+       vmoveto 0 0
+       
+       # test pixels in a top left corner
+       set TestPassed 0
+       set HasPixel 0
+       for {set i 0} {$i < $limit_x} {incr i} {
+               for {set j 0} {$j < $limit_y} {incr j} {
+                       set QATestVar [ catch { QAGetPixelColor $i $j $r $g $b } ]
+                       if { $QATestVar == 0 } {
+                               set HasPixel 1
+                       }
+               }
+       }
+       if { $HasPixel == 1 } { 
+               set TestPassed [expr $TestPassed + 1]
+       } else {
+               set TestPassed 0
+       }
+
+       # test pixels in bottom left corner
+       set HasPixel 1
+       for {set i 0} {$i < $limit_x} {incr i} {
+               for {set j 0} {$j < $limit_y} {incr j} {
+                       set QATestVar [ catch { QAGetPixelColor $i [expr $view_height-$j] $r $g $b  } ]
+                       if { $QATestVar == 0 } {
+                               set HasPixel 1
+                       }
+               }
+       }
+       if { $HasPixel == 1 } { 
+               set TestPassed [expr $TestPassed + 1]
+       } else {
+               set TestPassed 0
+       }
+       
+       # test pixels in center right corner
+       set HasPixel 1
+       for {set i 0} {$i < $limit_x} {incr i} {
+               for {set j 0} {$j < $limit_y} {incr j} {
+                       set QATestVar [ catch { QAGetPixelColor [expr ($view_width-$limit_y) + $i] [expr ($view_height-$limit_y)/2 + $j] $r $g $b  } ]
+                       if { $QATestVar == 0 } {
+                               set HasPixel 1
+                       }
+               }
+       }
+       if { $HasPixel == 1 } { 
+               set TestPassed [expr $TestPassed + 1]
+       } else {
+               set TestPassed 0
+       }
+       
+       # test pixels in center left corner (shouldn't be anything)
+       set HasPixel 0
+       for {set i 0} {$i < $limit_x} {incr i} {
+               for {set j 0} {$j < $limit_y} {incr j} {
+                       set QATestVar [ catch { QAGetPixelColor [expr $view_width/4 + $i] [expr ($view_height-$limit_y)/2 + $j] $r $g $b  } ]
+                       if { $QATestVar == 0 } {
+                               set HasPixel 1
+                       }
+               }
+       }
+       if { $HasPixel == 1 } { 
+               set TestPassed 0
+       } else {
+               set TestPassed [expr $TestPassed + 1]
+       }
+
+       # show all primitives
+       vdisplayall
+       vtop
+       vfit
+       
+       # return a result
+       if { ${TestPassed} == 4 } {
+      return 1
+       } else {
+      return 0
+       }
+}
+
+# ### THIS IS THE HEAD LOOP OF THE TEST ####################
+# During this test primitives are created and displayed
+# with commands vdrawparray, and verified for consistency
+# with check_primitive procedure. In spite of the fact that there
+# a lot of code below, it's similar and divided on the similar
+# blocks of code.
+# The iteration loop is intended to check primitives with
+# "vertex buffer objects" turned off (vbo_enable = 0) and
+# turned on (vbo_enable = 1)
+
+for {set vbo_enable 0} {$vbo_enable < 2} {incr vbo_enable} {
+
+       if { $vbo_enable == 0 } { 
+           vvbo 0
+           puts "TEST WITH VBO is OFF"
+       }
+       if { $vbo_enable == 1 } {
+           vvbo 1
+           puts "TEST WITH VBO is ON"
+       }
+       
+       vinit
+       veraseall
+       vclear
+
+       # this points are only to simplify visiual check of dumped image
+       vpoint point1   65 0 0
+       vpoint point2 -145 0 0
+
+       # ****************************** Graphic3d_ArrayOfPoints ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfPoints: TEST"
+       # 
+       # 1: verticies
+       #
+       generate_points 60 0 0   $colorY_R $colorY_G $colorY_B
+       eval vdrawparray pt01 points $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06
+       #
+       # Final result
+       #
+       if { [ check_primitive pt01 $colorY_R $colorY_G $colorY_B ] == 0 } {
+               puts "WARNING! definition by verticies failed"
+               puts "WARNING! Graphic3d_ArrayOfPoints: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfPoints: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfSegments ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfSegments: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points 50 0 0   $colorY_R $colorY_G $colorY_B
+       eval vdrawparray seg01 segments $vbo_enable $pts02 $pts01 $pts01 $pts03 $pts03 $pts05 $pts05 $pts06 $pts06 $pts04 $pts04 $pts02
+       if { [ check_primitive seg01 $colorY_R $colorY_G $colorY_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: edges
+       #
+       generate_points 40 0 0   $colorR_R $colorR_G $colorR_B
+       eval vdrawparray seg02 segments $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 e 1 e 2 e 2 e 4 e 4 e 6 e 6 e 5 e 5 e 3 e 3 e 1
+       if { [ check_primitive seg02 $colorR_R $colorR_G $colorR_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and edges failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfSegments: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfSegments: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfPolylines ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfPolylines: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points 30 0 0   $colorY_R $colorY_G $colorY_B
+       eval vdrawparray pline01 polylines $vbo_enable $pts02 $pts01 $pts03 $pts05 $pts06 $pts04 $pts02
+       if { [ check_primitive pline01 $colorY_R $colorY_G $colorY_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: edges
+       #
+       generate_points 20 0 0   $colorR_R $colorR_G $colorR_B
+       eval vdrawparray pline02 polylines $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 e 2 e 4 e 6 e 5 e 3 e 1 e 2
+       if { [ check_primitive pline02 $colorR_R $colorR_G $colorR_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and edges failed" }
+       #
+       # 3: bounds
+       #
+       generate_points 10 0 0   $colorY_R $colorY_G $colorY_B
+       eval vdrawparray pline03 polylines $vbo_enable ( b 3 ( $pts02 $pts01 $pts03 )), ( b 4 ( $pts03 $pts05 $pts06 $pts04 )), ( b 2 ( $pts04 $pts02 ))
+       if { [ check_primitive pline03 $colorY_R $colorY_G $colorY_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and bounds failed" }
+       #
+       # 4: verticies, bounds and edges
+       #
+       generate_points 0 0 0   $colorR_R $colorR_G $colorR_B
+       eval vdrawparray pline04 polylines $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 ( b 4 ( e 2 e 1 e 3 e 5 )), ( b 4 ( e 5 e 6 e 4 e 2 ))
+       if { [ check_primitive pline04 $colorR_R $colorR_G $colorR_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies, bounds and edges failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfPolylines: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfPolylines: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfTriangles ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfTriangles: TEST"
+       #
+       # 1: verticies 
+       #
+       generate_points   -10 0 0   $colorB_R $colorB_G $colorB_B
+       eval vdrawparray t01 triangles $vbo_enable ( $pts03 $pts02 $pts01 ) , ( $pts03 $pts04 $pts02 ) , ( $pts04 $pts03 $pts06 ) , ( $pts06 $pts03 $pts05 )
+       if { [ check_primitive t01 $colorB_R $colorB_G $colorB_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: by edges
+       #
+       generate_points -20 0 0   $colorG_R $colorG_G $colorG_B
+       eval vdrawparray t02 triangles $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 e 6 e 3 e 5 e 6 e 4 e 3 e 1 e 3 e 2 e 2 e 3 e 4
+       if { [ check_primitive t02 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and egdes failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfTriangles: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfTriangles: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfTriangleFans ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfTriangleFans: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points -30 0 0    $colorB_R $colorB_G $colorB_B
+       eval vdrawparray tfan01 trianglefans $vbo_enable ( $pts02 $pts01 $pts03 $pts04 )
+       eval vdrawparray tfan02 trianglefans $vbo_enable ( $pts03 $pts05 $pts06 $pts04 )
+       if { [ check_primitive tfan01 $colorB_R $colorB_G $colorB_B tfan02 ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: bounds and verticies
+       #
+       generate_points -40 0 0   $colorG_R $colorG_G $colorG_B
+       eval vdrawparray tfan03 trianglefans $vbo_enable ( b 4 ( $pts02 $pts01 $pts03 $pts04 )), ( b 4 ( $pts03 $pts05 $pts06 $pts04 ))
+       if { [ check_primitive tfan03 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and bounds failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfTriangleFans: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfTriangleFans: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfTriangleStrips ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfTriangleStrips: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points -50 0 0    $colorB_R $colorB_G $colorB_B
+       eval vdrawparray tstrip01 trianglestrips $vbo_enable ( $pts06 $pts04 $pts03 $pts02 $pts01 )
+       eval vdrawparray tstrip02 trianglestrips $vbo_enable ( $pts03 $pts05 $pts06 )
+       if { [ check_primitive tstrip01 $colorB_R $colorB_G $colorB_B tstrip02 ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: bounds and verticies
+       #
+       generate_points -60 0 0    $colorG_R $colorG_G $colorG_B
+       eval vdrawparray tstrip03 trianglestrips $vbo_enable ( b 5 ( $pts06 $pts04 $pts03 $pts02 $pts01 )) , ( b 3 ( $pts03 $pts05 $pts06 ))
+       if { [ check_primitive tstrip03 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and bounds failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfTriangleStrips: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfTriangleStrips: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfQuadrangles ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfQuadrangles: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points -70 0 0    $colorB_R $colorB_G $colorB_B
+       eval vdrawparray q01 quads $vbo_enable ( $pts01 $pts03 $pts04 $pts02 )
+       eval vdrawparray q02 quads $vbo_enable ( $pts03 $pts05 $pts06 $pts04 )
+       if { [ check_primitive q01 $colorB_R $colorB_G $colorB_B q02 ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: verticies and edges
+       #
+       generate_points -80 0 0    $colorG_R $colorG_G $colorG_B
+       eval vdrawparray q03 quads $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 e 1 e 3 e 4 e 2 e 3 e 5 e 6 e 4
+       if { [ check_primitive q03 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and edges failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfQuadrangles: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfQuadrangles: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfQuadrangleStrips ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfQuadrangleStrips: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points -90 0 0    $colorB_R $colorB_G $colorB_B
+       eval vdrawparray qstrips01 quadstrips $vbo_enable ( $pts02 $pts01 $pts04 $pts03 $pts06 $pts05 )
+       if { [ check_primitive qstrips01 $colorB_R $colorB_G $colorB_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: verticies and edges
+       #
+       generate_points -100 0 0    $colorG_R $colorG_G $colorG_B
+       eval vdrawparray qstrips02 quadstrips $vbo_enable ( b 4 ( $pts02 $pts01 $pts04 $pts03 )) , ( b 4 ( $pts04 $pts03 $pts06 $pts05 ))
+       if { [ check_primitive qstrips02 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and edges failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfQuadrangleStrips: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfQuadrangleStrips: PASSED"
+       }
+
+
+       # ****************************** Graphic3d_ArrayOfPolygons ****************************** #
+       set IntermediateResult 1
+       puts "Graphic3d_ArrayOfPolygons: TEST"
+       #
+       # 1: verticies
+       #
+       generate_points -110 0 0    $colorB_R $colorB_G $colorB_B
+       eval vdrawparray poly01 polygons $vbo_enable ( $pts04 $pts02 $pts01 $pts03 $pts05 $pts06 )
+       if { [ check_primitive poly01 $colorB_R $colorB_G $colorB_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies failed" }
+       #
+       # 2: verticies and bounds
+       #
+       generate_points -120 0 0   $colorG_R $colorG_G $colorG_B
+       eval vdrawparray poly02 polygons $vbo_enable ( b 5 ( $pts04 $pts02 $pts01 $pts03 $pts06 )) , ( b 3 ( $pts06 $pts03 $pts05 ))
+       if { [ check_primitive poly02 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and bounds failed" }
+       #
+       # 3: verticies and edges
+       #
+       generate_points -130 0 0   $colorB_R $colorB_G $colorB_B
+       eval vdrawparray poly03 polygons $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 e 4 e 2 e 1 e 3 e 5 e 6
+       if { [ check_primitive poly03 $colorB_R $colorB_G $colorB_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies and edges failed" }
+       #
+       # 4: vertices, bounds and edges
+       #
+       generate_points -140 0 0   $colorG_R $colorG_G $colorG_B
+       eval vdrawparray poly04 polygons $vbo_enable $pts01 $pts02 $pts03 $pts04 $pts05 $pts06 ( b 5 ( e 4 e 2 e 1 e 3 e 6 )), ( b 3 ( e 6 e 3 e 5 ))
+       if { [ check_primitive poly04 $colorG_R $colorG_G $colorG_B ] == 0 } { set IntermediateResult 0; puts "WARNING! definition by verticies, bounds and edges failed" }
+       #
+       # Final result
+       #
+       if { $IntermediateResult == 0 } {
+               puts "WARNING! Graphic3d_ArrayOfPolygons: FAILED"
+               set status 1
+       } else {
+               puts "Graphic3d_ArrayOfPolygons: PASSED"
+       }
+       
+       vtop
+       vfit
+       
+       # dump resulted image
+       if { $vbo_enable == 0 } { vfeedback; vdump $ImageName1 }
+       if { $vbo_enable == 1 } { vfeedback; vdump $ImageName2 }
+
+}
+
+# delete internal procedures
+rename generate_points ""
+rename check_primitive ""
+
+if { ${status} == 0 } {
+       puts "BUG OK ${BUGNUMBER}"
+} else {
+       puts "BUG FAULTY ${BUGNUMBER}"
+}
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23227 b/tests/bugs/vis/bug23227
new file mode 100755 (executable)
index 0000000..7f40fbb
--- /dev/null
@@ -0,0 +1,40 @@
+puts "============"
+puts "OCC23227"
+puts "============"
+puts ""
+#######################################################################
+# New Draw Harness command to estimate current geometry complexity of OpenGL scene
+#######################################################################
+
+set BugNumber OCC23227
+
+box b 1 2 3
+vinit
+vdisplay b
+vsetdispmode 1
+vfit
+set vfeedback1 [vfeedback]
+
+vclear
+set vfeedback2 [vfeedback]
+
+set llength_vfeedback1 [llength ${vfeedback1}]
+set llength_vfeedback2 [llength ${vfeedback2}]
+set IndexTriangles1 [lsearch ${vfeedback1} Triangles:]
+set IndexTriangles2 [lsearch ${vfeedback2} Triangles:]
+
+if { ${llength_vfeedback1} < 36 || ${llength_vfeedback2} < 36 || ${IndexTriangles1} < 0 || ${IndexTriangles2} < 0 } {
+   puts "Bad format of vfeedback command"
+   puts "Faulty ${BugNumber}"
+} else {
+   set Triangles1 [lindex ${vfeedback1} ${IndexTriangles1}+1]
+   set Triangles2 [lindex ${vfeedback2} ${IndexTriangles1}+1]
+   if { ${Triangles1} == 12 && ${Triangles2} == 0 } {
+      puts "OK ${BugNumber}"
+   } else {
+      puts "Faulty ${BugNumber}"
+   }
+}
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug23253 b/tests/bugs/vis/bug23253
new file mode 100755 (executable)
index 0000000..e573886
--- /dev/null
@@ -0,0 +1,107 @@
+puts "============"
+puts "OCC23253"
+puts "============"
+puts ""
+#######################################################################
+# Additional viewer 3d draw-commands vleft, vfront, ...
+#######################################################################
+
+set BugNumber OCC23253
+
+box b 10 20 30
+ptorus t 50 10
+
+vinit
+vsetdispmode 1
+
+vdisplay b
+vdisplay t
+vfit
+
+set status 0
+
+#####
+vaxo
+#####
+
+set x1 120
+set y1 260
+checkcolor $x1 $y1 0.91 0.64 0.11
+
+set x2 120
+set y2 260
+checkcolor $x2 $y2 0.91 0.64 0.11
+
+#####
+vtop
+#####
+
+set x1 125
+set y1 135
+checkcolor $x1 $y1 1 1 0.92
+
+set x2 220
+set y2 200
+checkcolor $x2 $y2 1 1 0.94
+
+#####
+vleft
+#####
+
+set x1 120
+set y1 230
+checkcolor $x1 $y1 0.92 0.66 0.11
+
+set x2 190
+set y2 170
+checkcolor $x2 $y2 1 1 0.94
+
+#####
+vright
+#####
+
+set x1 120
+set y1 230
+checkcolor $x1 $y1 0.93 0.66 0.11
+
+set x2 220
+set y2 170
+checkcolor $x2 $y2 1 1 0.94
+
+#####
+vfront
+#####
+
+set x1 120
+set y1 230
+checkcolor $x1 $y1 0.92 0.66 0.11
+
+set x2 240
+set y2 170
+checkcolor $x2 $y2 1 1 0.94
+
+#####
+vback
+#####
+
+set x1 120
+set y1 230
+checkcolor $x1 $y1 0.93 0.66 0.11
+
+set x2 170
+set y2 170
+checkcolor $x2 $y2 1 1 0.94
+
+#####
+vbottom
+#####
+
+set x1 90
+set y1 300
+checkcolor $x1 $y1 0.81 0.58 0.09
+
+set x2 220
+set y2 250
+checkcolor $x2 $y2 1 1 0.94
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug23363 b/tests/bugs/vis/bug23363
new file mode 100755 (executable)
index 0000000..8c32306
--- /dev/null
@@ -0,0 +1,28 @@
+puts "============"
+puts "OCC23363"
+puts "============"
+puts ""
+####################################################################################
+# [Regression] Lost gradient background when switching to the hollow interior style
+####################################################################################
+
+set BugNumber OCC23363
+
+vinit
+vsetgradientbg 250 0 0 0 255 0 2
+pcylinder p 100 200
+vdisplay p
+vsetdispmode p 1
+vsetinteriorstyle p 1
+
+set color [QAGetPixelColor 10 0]
+regexp {RED +: +([-0-9.+eE]+)} $color full R_check
+
+puts ""
+if { ${R_check} == 0 } {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set only_screen 1
diff --git a/tests/bugs/vis/bug23385 b/tests/bugs/vis/bug23385
new file mode 100755 (executable)
index 0000000..b8beee8
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC23385"
+puts "============"
+puts ""
+####################################################################################
+# Bug in AIS_TexturedShape::Compute()
+####################################################################################
+
+set BugNumber OCC23385
+
+vinit
+restore [locate_data_file OCC23115-bottle.brep] b
+explode b F
+vdisplay b_16
+vtexture b_16 [locate_data_file OCC23385-carrelage1.gif]
+vtexrepeat b_16 3 2
+vsetdispmode b_16 1
+vfit
+
+set color [QAGetPixelColor 85 73]
+regexp {RED +: +([-0-9.+eE]+)} $color full R_check
+regexp {GREEN +: +([-0-9.+eE]+)} $color full G_check
+regexp {BLUE +: +([-0-9.+eE]+)} $color full B_check
+set color_status 0
+if { ${R_check} != 0 || ${G_check} != 0 || ${B_check} != 0 } {
+    set color_status 0
+} else {
+    set color_status 1
+}
+
+puts ""
+if { ${color_status} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
+set only_screen 1
+
+
+
+
diff --git a/tests/bugs/vis/bug5988 b/tests/bugs/vis/bug5988
new file mode 100755 (executable)
index 0000000..cf1b6cc
--- /dev/null
@@ -0,0 +1,41 @@
+puts "============"
+puts "OCC5988"
+puts "============"
+puts ""
+#######################################################################
+# A textured shape (AIS_TextureShape) becomes black if we display an AIS_PlaneTrihedron with it
+#######################################################################
+
+set BugNumber OCC5988
+
+vinit
+vclear
+box box 100 100 100
+vdisplay box
+vfit
+puts "display box"
+
+set x 200
+set y 200
+checkcolor $x $y 0 0 0
+
+puts "display trihedron"
+vtrihedron vtr
+
+puts "display textured box"
+catch { vtexture box [locate_data_file OCC5988_2d_floor.rgb] }
+
+set x 200
+set y 200
+decho off
+if [catch { QAGetPixelColor $x $y 0 0 0 } res] {
+    puts "box is not black - OK"
+    puts "OK ${BugNumber}"
+} else {
+    puts "box is black - Faulty"
+    puts "Faulty ${BugNumber}"
+}
+decho on
+
+set only_screen 1
+
diff --git a/tests/bugs/vis/bug5990 b/tests/bugs/vis/bug5990
new file mode 100755 (executable)
index 0000000..2529ffd
--- /dev/null
@@ -0,0 +1,49 @@
+puts "================"
+puts "OCC5990"
+puts "================"
+puts ""
+#######################################################################################
+# SetColor does not change color of wireframe entities in shading mode
+######################################################################################
+
+set BugNumber OCC5990
+
+set x1 162
+set y1 159
+set x2 204
+set y2 269
+set x3 348
+set y3 238
+
+set KUB_R 0.45098000764846802
+set KUB_G 0.32941100001335144
+set KUB_B 1
+
+set LINE_R 0
+set LINE_G 0
+set LINE_B 1
+
+
+box b1 10 10 10
+vertex v1 20 0 0
+vertex v2 20 0 10
+vertex v3 30 0 0
+vertex v4 30 0 10
+vertex v5 30 10 10
+edge e1 v1 v2
+edge e2 v3 v4
+edge e3 v4 v5
+compound e2 e3 c1
+vinit
+vdisplay b1 e1 c1
+vsetdispmode 1
+vfit
+vsetcolor b1 BLUE1
+vsetcolor e1 BLUE1
+vsetcolor c1 BLUE1
+
+checkcolor ${x1} ${y1} ${KUB_R} ${KUB_G} ${KUB_B}
+checkcolor ${x2} ${y2} ${LINE_R} ${LINE_G} ${LINE_B}
+checkcolor ${x3} ${y3} ${LINE_R} ${LINE_G} ${LINE_B}
+
+set only_screen 1
diff --git a/tests/bugs/xde/bug12905 b/tests/bugs/xde/bug12905
new file mode 100755 (executable)
index 0000000..54b0329
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC12905"
+puts "============"
+puts ""
+#######################################################################
+# Invalid writing to IGES
+#######################################################################
+
+set BugNumber OCC12905
+
+vertex v1 0 0 0
+vertex v2 0 0 10
+edge e1 v1 v2
+
+set EdgeFile ${imagedir}/${BugNumber}.igs
+file delete ${EdgeFile}
+
+set IsOk 1
+
+if {[catch { brepiges e1 ${EdgeFile} } ]} {
+   set IsOk 0
+} else {
+   if {[catch { igesbrep ${EdgeFile} result * } ]} {
+      set IsOk 0
+   } else {
+      set nb_v_good 2
+      set nb_e_good 1
+      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 0
+      set nb_shape_good 3
+   }
+}
+
+# Resume
+puts ""
+if { ${IsOk} == 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/xde/bug15220 b/tests/bugs/xde/bug15220
new file mode 100755 (executable)
index 0000000..ba754d8
--- /dev/null
@@ -0,0 +1,16 @@
+puts "==========="
+puts "OCC15220"
+puts "==========="
+
+set BugNumber OCC15220
+
+######################################################
+# Problems with IGES file locations
+######################################################
+
+
+igesbrep [locate_data_file OCC15220.igs] result *
+
+set square 5.69952e+07
+
+set 2dviewer 0
diff --git a/tests/bugs/xde/bug1540 b/tests/bugs/xde/bug1540
new file mode 100755 (executable)
index 0000000..1e594bd
--- /dev/null
@@ -0,0 +1,25 @@
+puts "================"
+puts "OCC1540"
+puts "================"
+puts ""
+##########################################################
+# exception while writing step file with invisible layer
+##########################################################
+
+set BugNumber OCC1540
+
+XNewDoc D
+box b 10 10 10
+XAddShape D b 1
+XAddLayer D invis
+XSetLayer D b invis
+XSetVisibility D invis 0
+
+set status [ catch { WriteStep D $imagedir/${test_image}.stp } ]
+
+if  { $status == 0 } {
+    puts "OK ${BugNumber}"
+} else {
+    puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/xde/bug1669 b/tests/bugs/xde/bug1669
new file mode 100755 (executable)
index 0000000..d58da1f
--- /dev/null
@@ -0,0 +1,107 @@
+puts "================"
+puts "OCC1669"
+puts "================"
+puts ""
+#################################################################
+# Wrong name mapping of the instances of assembly into STEP file.
+#################################################################
+
+set BugNumber OCC1669
+
+catch {pload DCAF}
+
+XNewDoc SA
+
+box b1 10 10 10
+box b2 20 10 10
+ttranslate b1 10 0 0
+ttranslate b2 20 0 0
+compound b1 b2 bl
+copy bl nbl
+ttranslate nbl 30 0 0
+compound bl nbl ryad
+copy ryad hryad
+ttranslate hryad -10 0 10
+copy ryad uryad
+ttranslate uryad 0 0 20
+compound ryad hryad uryad stena
+
+XAddShape SA stena 1
+
+SetName SA 0:1:1:1 Wall
+SetName SA 0:1:1:2 Block-Array
+SetName SA 0:1:1:3 Block
+SetName SA 0:1:1:4 Half-Brick
+SetName SA 0:1:1:5 Brick
+
+SetName SA 0:1:1:1:1 base-array
+SetName SA 0:1:1:1:2 next-array
+SetName SA 0:1:1:1:3 top-array
+
+SetName SA 0:1:1:2:1 left-block
+SetName SA 0:1:1:2:2 right-block
+
+SetName SA 0:1:1:3:1 half-brick
+SetName SA 0:1:1:3:2 brick
+
+catch { WriteStep SA $imagedir/${test_image}.stp }
+catch { ReadStep D $imagedir/${test_image}.stp }
+
+puts "Info: Now compare two documents SA and D"
+#DFBrowse SA
+#DFBrowse D
+
+set NamesList1 {Wall Block-Array Block Half-Brick Brick}
+set NamesList2 {base-array next-array top-array}
+set NamesList3 {left-block right-block}
+set NamesList4 {half-brick brick}
+
+set status 0
+
+for {set i 1} {$i <= 5} {incr i} {
+    set name [ GetName D 0:1:1:$i ]
+    set ref_name [lindex $NamesList1 $i-1]
+    if { $name != $ref_name } {
+       set status 1
+       break
+    }
+}
+
+if { $status != 1 } {
+   for {set i 1} {$i <= 3} {incr i} {
+        set name [ GetName D 0:1:1:1:$i ]
+       set ref_name [lindex $NamesList2 $i-1]
+       if { $name != $ref_name } {
+                  set status 1
+                  break
+       }
+   }
+}
+
+if { $status != 1 } {
+   for {set i 1} {$i <= 2} {incr i} {
+        set name [ GetName D 0:1:1:2:$i ]
+       set ref_name [lindex $NamesList3 $i-1]
+       if { $name != $ref_name } {
+                  set status 1
+                  break
+       }
+   }
+}
+
+if { $status != 1 } {
+   for {set i 1} {$i <= 2} {incr i} {
+        set name [ GetName D 0:1:1:3:$i ]
+       set ref_name [lindex $NamesList4 $i-1]
+       if { $name != $ref_name } {
+                  set status 1
+                  break
+       }
+   }
+}
+
+if { $status != 0 }  {
+  puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/xde/bug1747 b/tests/bugs/xde/bug1747
new file mode 100755 (executable)
index 0000000..2bf5851
--- /dev/null
@@ -0,0 +1,77 @@
+puts "TODO OCC11111 ALL: Faulty OCC1747"
+
+puts "================"
+puts "OCC1747"
+puts "================"
+puts ""
+#######################################################################################
+# Cannot get entity number for translated shape from STEP in XDE case
+######################################################################################
+
+set BugNumber OCC1747
+
+catch {pload DCAF}
+
+XNewDoc SA
+
+box b1 10 10 10
+box b2 20 10 10
+ttranslate b1 10 0 0
+ttranslate b2 20 0 0
+compound b1 b2 bl
+copy bl nbl
+ttranslate nbl 30 0 0
+compound bl nbl ryad
+copy ryad hryad
+ttranslate hryad -10 0 10
+copy ryad uryad
+ttranslate uryad 0 0 20
+compound ryad hryad uryad stena
+
+XAddShape SA stena 1
+
+SetName SA 0:1:1:1 Wall
+SetName SA 0:1:1:2 Block-Array
+SetName SA 0:1:1:3 Block
+SetName SA 0:1:1:4 Half-Brick
+SetName SA 0:1:1:5 Brick
+
+SetName SA 0:1:1:1:1 base-array
+SetName SA 0:1:1:1:2 next-array
+SetName SA 0:1:1:1:3 top-array
+
+SetName SA 0:1:1:2:1 left-block
+SetName SA 0:1:1:2:2 right-block
+
+SetName SA 0:1:1:3:1 half-brick
+SetName SA 0:1:1:3:2 brick
+
+WriteStep SA $imagedir/${test_image}.stp
+dall
+ReadStep D $imagedir/${test_image}.stp
+
+puts "INFO: get main shape from the XDE document D"
+XGetShape a D 0:1:1:1
+puts "INFO: now try to get translation history for it"
+set info1 [ fromshape a ]
+set index1 [ lsearch $info1 unknown ]
+explode a
+puts "INFO: now try to get translation history for subshape a_1"
+set info2 [ fromshape a_1 ]
+set index2 [ lsearch $info2 unknown ] 
+puts "INFO: now try to get translation history for subshape a_2"
+set info3 [fromshape a_2 ]
+set index3 [ lsearch $info3 unknown ]
+
+set exception_status 0
+if {$index1 > -1 || $index2 > -1 || $index3 > -1} {
+    set exception_status 1
+}
+
+if { ${exception_status} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+set 3dviewer 0
diff --git a/tests/bugs/xde/bug21046 b/tests/bugs/xde/bug21046
new file mode 100755 (executable)
index 0000000..17d5e03
--- /dev/null
@@ -0,0 +1,23 @@
+puts "============"
+puts "OCC21046"
+puts "============"
+puts ""
+#######################################################################
+# XShow raises an exception
+#######################################################################
+
+pload DCAF
+
+set BugNumber OCC21046
+
+box B 100 100 100
+XNewDoc D
+SetShape D 0:1 B
+XShow D 0:1
+if [catch { XShow D 0:1 } ] {
+  puts "Faulty ${BugNumber} : XShow is wrong"
+} elseif [catch { vmoveto 10 10 } ] {
+  puts "Faulty ${BugNumber} : XShow is wrong"
+} else {
+  puts "OK ${BugNumber}"
+}
diff --git a/tests/bugs/xde/bug21124 b/tests/bugs/xde/bug21124
new file mode 100755 (executable)
index 0000000..be8a358
--- /dev/null
@@ -0,0 +1,28 @@
+puts "========"
+puts "OCC21124"
+puts "========"
+puts ""
+######################################################
+# Mapping between IGES entinties and result shapes is lost on attached file.
+######################################################
+
+set BugNumber OCC21124
+
+if [catch { igesbrep [locate_data_file OCC21124.igs] a *} catch_result] {
+  puts "Error ${BugNumber}: there is reading problem"
+} else {
+  whatis a
+  explode a
+  whatis a_91
+  explode a_91
+  set l [fromshape a_91_3]
+  regexp {type : +([-0-9.+eE]+)} $l full type
+  if { ${type} != 408 } {
+    puts "Faulty ${BugNumber}"
+  } else {
+    puts "OK ${BugNumber}"
+  }
+}
+renamevar a_91_3 result
+set square 74027
+set 2dviewer 0
diff --git a/tests/bugs/xde/bug22492 b/tests/bugs/xde/bug22492
new file mode 100755 (executable)
index 0000000..3b6ff9a
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "OCC22492"
+puts "============"
+puts ""
+#######################################################################
+# Scaled sphere (Solid with BSplineSurface) is wrongly exported in STEP.
+#######################################################################
+
+set BugNumber OCC22492
+
+restore [locate_data_file bug22492_scale.brep] sc1 
+nbshapes sc1
+
+catch {[file delete $imagedir/${test_image}.step]}
+
+stepwrite 3 sc1 $imagedir/${test_image}.step
+
+stepread $imagedir/${test_image}.step sc2 *
+tpcompound sc2
+renamevar sc2 result
+
+set square 285636
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 10
+
+set 2dviewer 0
diff --git a/tests/bugs/xde/bug22576 b/tests/bugs/xde/bug22576
new file mode 100755 (executable)
index 0000000..e33dc1b
--- /dev/null
@@ -0,0 +1,18 @@
+puts "============"
+puts "OCC22576"
+puts "============"
+puts ""
+##################################################################
+#  ShapeFix_Edge::SameParameter() now retains original 3D interval
+##################################################################
+
+set BugNumber OCC22576
+
+puts "Load shape ..."
+restore [locate_data_file test-fix280-face.brep] res
+
+fixshape result res
+
+set length 1.56058
+set 2dviewer 0
+
diff --git a/tests/bugs/xde/bug22776 b/tests/bugs/xde/bug22776
new file mode 100755 (executable)
index 0000000..a02b55c
--- /dev/null
@@ -0,0 +1,124 @@
+puts "================"
+puts "OCC22776"
+puts "================"
+puts ""
+#######################################################################################
+# XCAFPrs_AISObject does not support transparency
+######################################################################################
+
+catch {pload DCAF}
+pload QAcommands
+
+NewDocument D MDTV-Standard
+UndoLimit D 100
+NewCommand D
+
+#Set NamedShape attribute
+box Box 100 200 300
+set Label 0:2
+SetShape D ${Label} Box
+
+# Initialize 3D viewer
+AISInitViewer D
+
+# Add AISPresentation attribute with parameter NS
+AISSet D ${Label} NS
+
+# Set shading mode
+vsetdispmode 1
+
+# Display presentation of NamedShape in the viewer
+AISDisplay D ${Label}
+
+# Close/Open transaction
+NewCommand D
+
+set list [OCC1031_AISMaterial D ${Label}]
+regexp {Material = ([-0-9.+eE]+)} $list full AISMaterial1
+
+# Set a material of the shape as NOM_COPPER
+set CopperMaterial 2
+OCC1031_AISMaterial D ${Label} ${CopperMaterial}
+
+set list [OCC1031_AISMaterial D ${Label}]
+regexp {Material = ([-0-9.+eE]+)} $list full AISMaterial2
+
+# Close/Open transaction
+NewCommand D
+
+set list [OCC1032_AISWidth D ${Label}]
+regexp {Width = ([-0-9.+eE]+)} $list full AISWidth1
+
+# Set a width
+set Width 10
+OCC1032_AISWidth D ${Label} ${Width}
+
+set list [OCC1032_AISWidth D ${Label}]
+regexp {Width = ([-0-9.+eE]+)} $list full AISWidth2
+
+# Close/Open transaction
+NewCommand D
+
+set list [OCC1029_AISTransparency D ${Label}]
+regexp {Transparency = ([-0-9.+eE]+)} $list full Transparency1
+
+# Set a transparency
+set Transparency 0.9
+XSetTransparency D ${Transparency} ${Label}
+
+set list [OCC1029_AISTransparency D ${Label}]
+regexp {Transparency = ([-0-9.+eE]+)} $list full Transparency2
+
+# Update the viewer
+AISRepaint D
+
+
+# Check the material
+puts "AISMaterial1 = ${AISMaterial1}"
+puts "AISMaterial2 = ${AISMaterial2}"
+set DefaultAISMaterial 0
+set status 0
+if { ${AISMaterial1} != ${DefaultAISMaterial} } {
+       puts "Default material is wrong: Error"
+       set status 1
+}
+if { ${AISMaterial2} != ${CopperMaterial} } {
+       puts "OCC1031_AISMaterial command: Error"
+       set status 1
+}
+
+# Check the width
+puts "AISWidth1 = ${AISWidth1}"
+puts "AISWidth2 = ${AISWidth2}"
+set DefaultAISWidth 0
+if { ${AISWidth1} != ${DefaultAISWidth} } {
+       puts "Default width is wrong: Error"
+       set status 1
+}
+if { ${AISWidth2} != ${Width} } {
+       puts "OCC1032_AISWidth command: Error"
+       set status 1
+}
+
+# Check the transparency
+puts "Transparency1 = ${Transparency1}"
+puts "Transparency2 = ${Transparency2}"
+set DefaultAISTransparency 0
+if { ${Transparency1} != ${DefaultAISTransparency} } {
+       puts "Default transparency is worng: Error"
+       set status 1
+}
+
+if { ${Transparency2} != ${Transparency} } {
+       puts "XSetTransparency command: Error"
+       set status 1
+}
+
+
+if { ${status} == 0} {
+       puts "OK"
+} else {
+       puts "FAULTY"
+}
+
+set 3dviewer 1
diff --git a/tests/bugs/xde/bug22805 b/tests/bugs/xde/bug22805
new file mode 100755 (executable)
index 0000000..08cdd1c
--- /dev/null
@@ -0,0 +1,25 @@
+puts "================"
+puts "OCC22805"
+puts "================"
+puts ""
+######################################################################################
+# Bug of STEP read/write
+######################################################################################
+
+set BugNumber OCC22805
+
+restore [locate_data_file OCC22805-spiral_solid.brep] s 
+stepwrite 0 s $imagedir/${test_image}.stp
+stepread $imagedir/${test_image}.stp result *
+set info [checkshape result_1]
+
+if { [regexp {This shape seems to be valid} $info]} {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+renamevar result_1 result
+set square 15121.2
+set 3dviewer 0
+
diff --git a/tests/bugs/xde/bug22822 b/tests/bugs/xde/bug22822
new file mode 100755 (executable)
index 0000000..bf0a6e6
--- /dev/null
@@ -0,0 +1,22 @@
+puts "================"
+puts "OCC22822"
+puts "================"
+puts ""
+######################################################################################
+# Skipping of the first and the last edges of a wire for opened wires
+######################################################################################
+
+set BugNumber OCC22822
+
+restore [locate_data_file OCC22822-selfIntersectingOpenWire.brep] result
+
+set aList [checkselfintersection result]
+
+if { [regexp {A self-intersecting wire.} $aList] } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+set length 579.551
+set 3dviewer 0
diff --git a/tests/bugs/xde/bug22915 b/tests/bugs/xde/bug22915
new file mode 100755 (executable)
index 0000000..3e8738b
--- /dev/null
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC22915"
+puts "================"
+puts ""
+######################################################################################
+# xrash in iges reader TransferRoots()
+######################################################################################
+
+set BugNumber OCC22915
+
+igesread [locate_data_file OCC22915-brakes.igs] result *
+checkshape result
+set info [ tpstat c ]
+
+regexp {Nb Total:([-0-9.+eE]+)[ \t]*for ([-0-9.+eE]+) items} $info full total nb_items
+set word1 [string compare $nb_items "3"]
+set word2 [string compare $total "38"]
+
+if { ${word1} == 0 && ${word2} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
+set square 284190
+
+
diff --git a/tests/bugs/xde/bug22962 b/tests/bugs/xde/bug22962
new file mode 100755 (executable)
index 0000000..4155ca9
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC22962"
+puts "============"
+puts ""
+#######################################################################
+# Invalid realization of reading and writing material in STEP
+#######################################################################
+
+set BugNumber OCC22962
+set check_value 94
+pload DCAF
+
+ReadStep D1 [locate_data_file OCC22962-dm1-oc-214.stp]
+set dump_info [ XDumpDF D1 ]
+
+regexp {attributes dumped between ([-0-9.+eE]+)} ${dump_info} full a1
+
+set c1 [string compare $a1 $check_value]
+
+if { $c1 != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
\ No newline at end of file
diff --git a/tests/bugs/xde/bug22982 b/tests/bugs/xde/bug22982
new file mode 100755 (executable)
index 0000000..368dcbe
--- /dev/null
@@ -0,0 +1,92 @@
+puts "TODO ?OCC11111 ALL: Error on Record"
+puts "TODO ?OCC11111 ALL: Error : Colors are not equal"
+puts "TODO ?OCC11111 ALL: Exception"
+puts "TODO ?OCC11111 ALL: Faulty : colors are not equal."
+puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
+
+pload QAcommands
+
+puts "============"
+puts "OCC22982"
+puts "============"
+puts ""
+##################################################################
+# Generic color is overriden in STEPCAFControl_Writer::WriteColors
+##################################################################
+
+set BugNumber OCC22982
+pload DCAF
+
+NewDocument D11 MDTV-XCAF
+UndoLimit D11 100
+
+# Open a transaction
+NewCommand D11
+
+set fileNameAir [locate_data_file OCC22982-Air.step]
+
+set status 0
+
+if { [catch { ReadStep D11 $fileNameAir } catch_result] } {
+  puts "Faulty ${BugNumber} : there is reading problem"
+  set status 1
+}
+
+XSetColor D11 0:1:1:1 0 0 1
+XSetColor D11 0:1:1:1:1 1 0 0
+XUnsetColor D11 0:1:1:1:2 s
+XUnsetColor D11 0:1:1:1:3 s
+
+set XRedCoords {2 148 179 204}
+set XRedCoords [split $XRedCoords " "]
+set YRedCoords {177 54 166 78}
+set YRedCoords [split $YRedCoords " "]
+
+set XBlueCoords {238 315 406 347 369 204 171 62}
+set XBlueCoords [split $XBlueCoords " "]
+set YBlueCoords {171 87 188 174 290 286 237 303}
+set YBlueCoords [split $YBlueCoords " "]
+
+XShow D11
+vfit
+
+for {set i 0} {$i < [llength $XRedCoords]} {incr i} {
+    set XCoord [lindex $XRedCoords $i]
+    set YCoord [lindex $YRedCoords $i]
+    checkcolor $XCoord $YCoord 1 0 0
+}
+
+# Close/Open a transaction
+NewCommand D11
+
+if { [catch { WriteStep D11 ${imagedir}/${test_image}.step } catch_result] } {
+  puts "Faulty ${BugNumber} : there is writing problem"
+  set status 1
+}
+
+NewDocument D2 MDTV-XCAF
+UndoLimit D2 100
+
+# Close/Open a transaction
+NewCommand D2
+
+if { [catch { ReadStep D2 ${imagedir}/${test_image}.step } catch_result] } {
+  puts "Faulty ${BugNumber} : there is reading problem"
+  set status 1
+}
+
+XShow D2
+vfit 
+for {set i 0} {$i < [llength $XBlueCoords]} {incr i} {
+    set XCoord [lindex $XBlueCoords $i]
+    set YCoord [lindex $YBlueCoords $i]
+    checkcolor $XCoord $YCoord 0 0 1
+}
+
+if { $status != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+  puts "OK ${BugNumber}"
+}
+
+set 3dviewer 0
diff --git a/tests/bugs/xde/bug23009 b/tests/bugs/xde/bug23009
new file mode 100755 (executable)
index 0000000..ddb83ad
--- /dev/null
@@ -0,0 +1,26 @@
+puts "========================"
+puts "OCC23009"
+puts "========================"
+puts ""
+#######################################################################
+# Request of a new feature fot units management during step import
+#######################################################################
+
+set BugNumber OCC23009
+
+set exception_status 1
+set info [ stepfileunits [locate_data_file OCC22459-TEST2.stp] ]
+set index1 [lsearch $info centimetre]
+set index2 [lsearch $info DEGREES]
+set index3 [lsearch $info steradian]
+if {$index1 > -1 && $index2 > -1 && $index3 > -1} {
+    set exception_status 0
+}
+
+puts ""
+if { ${exception_status} != 0 } {
+    puts "Faulty ${BugNumber}"
+} else {
+    puts "OK ${BugNumber}"
+}
+
diff --git a/tests/bugs/xde/bug23047_1 b/tests/bugs/xde/bug23047_1
new file mode 100755 (executable)
index 0000000..6860c11
--- /dev/null
@@ -0,0 +1,33 @@
+puts "================"
+puts "OCC23047"
+puts "================"
+puts ""
+########################################################################################################
+# Behaviour of XDE sample is non-stable
+########################################################################################################
+
+set BugNumber OCC23047
+
+pload QAcommands
+
+XNewDoc D
+box b 1 1 1
+ttranslate b 1 0 0
+XAddShape D b
+XRemoveShape D 0:1:1:1 0
+
+QARebuild Xdump
+
+set xd [Xdump D]
+
+set FreeShapes 0
+
+regexp {Free Shapes: ([-0-9.+eE]+)} $xd full FreeShapes
+puts "FreeShapes=${FreeShapes}"
+
+if { ${FreeShapes} == 1 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/xde/bug23047_2 b/tests/bugs/xde/bug23047_2
new file mode 100755 (executable)
index 0000000..0ebceda
--- /dev/null
@@ -0,0 +1,33 @@
+puts "================"
+puts "OCC23047"
+puts "================"
+puts ""
+########################################################################################################
+# Behaviour of XDE sample is non-stable
+########################################################################################################
+
+set BugNumber OCC23047
+
+pload QAcommands
+
+XNewDoc D
+box b 1 1 1
+ttranslate b 1 0 0
+XAddShape D b
+XRemoveShape D 0:1:1:1 1
+
+QARebuild Xdump
+
+set xd [Xdump D]
+
+set FreeShapes 0
+
+regexp {Free Shapes: ([-0-9.+eE]+)} $xd full FreeShapes
+puts "FreeShapes=${FreeShapes}"
+
+if { ${FreeShapes} == 0 } {
+   puts "OK ${BugNumber}"
+} else {
+   puts "Faulty ${BugNumber}"
+}
+
diff --git a/tests/bugs/xde/bug6307 b/tests/bugs/xde/bug6307
new file mode 100755 (executable)
index 0000000..3ec53ee
--- /dev/null
@@ -0,0 +1,40 @@
+puts "==========="
+puts "OCC6307"
+puts "==========="
+######################################################
+# DRAW: XShow command on WNT produces very bad shading
+######################################################
+
+set BugNumber OCC6307
+
+catch {pload DCAF}
+
+# Create a new document and set UndoLimit
+NewDocument D
+UndoLimit D 100
+
+# Open a transaction
+NewCommand D
+
+ReadStep D [locate_data_file trj2_as1-tc-214.stp]
+
+XGetOneShape result D
+
+XShow D
+
+vsetdispmode 1
+vfit
+
+set square 141051
+
+set nb_v_good 84
+set nb_e_good 126
+set nb_w_good 76
+set nb_f_good 53
+set nb_sh_good 5
+set nb_sol_good 5
+set nb_compsol_good 0
+set nb_compound_good 4
+set nb_shape_good 353
+
+set only_screen 1
index d2f607a..476221d 100755 (executable)
@@ -24,6 +24,97 @@ if { [isdraw result] } {
       }
    }
 
       }
    }
 
+   set glob_inf [info global nb_*_good]
+   if { [regexp "nb_.*_good" $glob_inf] == 1 } {
+      if { [info exists nbsh_t] } {
+        set nb_info [nbshapes result -t]
+      } else {
+        set nb_info [nbshapes result]
+      }
+   }
+
+   if { [info exists nb_v_good] } {
+      regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v
+      if { ${nb_v} != ${nb_v_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_v_good} vertexes instead of ${nb_v}"
+      } else {
+         puts "The resulting shape contains ${nb_v} vertexes"
+      }
+   }
+
+   if { [info exists nb_e_good] } {
+      regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e
+      if { ${nb_e} != ${nb_e_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_e_good} edges instead of ${nb_e}"
+      } else {
+        puts "The resulting shape contains ${nb_e} edges"
+      }
+   }
+
+   if { [info exists nb_w_good] } {
+      regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w
+      if { ${nb_w} != ${nb_w_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_w_good} wires instead of ${nb_w}"
+      } else {
+        puts "The resulting shape contains ${nb_w} wires"
+      }
+   }
+
+   if { [info exists nb_f_good] } {
+      regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f
+      if { ${nb_f} != ${nb_f_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_f_good} faces instead of ${nb_f}"
+      } else {
+                puts "The resulting shape contains ${nb_f} faces"
+      }
+   }
+
+   if { [info exists nb_sh_good] } {
+      regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh
+      if { ${nb_sh} != ${nb_sh_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_sh_good} shells instead of ${nb_sh}"
+      } else {
+        puts "The resulting shape contains ${nb_sh} shells"
+      }
+   }
+
+   if { [info exists nb_sol_good] } {
+      regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol
+      if { ${nb_sol} != ${nb_sol_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_sol_good} solids instead of ${nb_sol}"
+      } else {
+        puts "The resulting shape contains ${nb_sol} solids"
+      }
+   }
+
+   if { [info exists nb_compsol_good] } {
+      regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol
+      if { ${nb_compsol} != ${nb_compsol_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_compsol_good} compsolids instead of ${nb_compsol}"
+      } else {
+        puts "The resulting shape contains ${nb_compsol} compsolids"
+      }
+   }
+
+   if { [info exists nb_compound_good] } {
+      regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound
+      if { ${nb_compound} != ${nb_compound_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_compound_good} compounds instead of ${nb_compound}"
+      } else {
+        puts "The resulting shape contains ${nb_compound} compounds"
+      }
+   }
+
+   if { [info exists nb_shape_good] } {
+      regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape
+      if { ${nb_shape} != ${nb_shape_good} } {
+        puts "Error : The resulting shape is WRONG because it must contains ${nb_shape_good} shapes instead of ${nb_shape}"
+      } else {
+        puts "The resulting shape contains ${nb_shape} shapes"
+      }
+   }
+
+
    if { $m > 0 } {
       smallview
       clear
    if { $m > 0 } {
       smallview
       clear
index 3b6aefa..8128400 100644 (file)
@@ -1,2 +1,4 @@
 001 solids
 002 not_solids
 001 solids
 002 not_solids
+003 specific
+
diff --git a/tests/thrusection/specific/A1 b/tests/thrusection/specific/A1
new file mode 100755 (executable)
index 0000000..33230d7
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#     * v3
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |       /* v2
+#     |     /
+#     |   /    * v4, v5
+#     | /
+#     *
+#     v1
+#
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 0 10 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 0
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 490.101
+
+set nb_v_good 5
+set nb_e_good 9
+set nb_w_good 6
+set nb_f_good 6
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 27
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A2 b/tests/thrusection/specific/A2
new file mode 100755 (executable)
index 0000000..c9aad1d
--- /dev/null
@@ -0,0 +1,65 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#     * v3
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |       /* v2
+#     |     /
+#     |   /    * v4, v5
+#     | /
+#     *
+#     v1
+#
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 0 10 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 1
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 490.101
+
+
+set nb_v_good 5
+set nb_e_good 9
+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 0
+set nb_shape_good 28
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A3 b/tests/thrusection/specific/A3
new file mode 100755 (executable)
index 0000000..db4b712
--- /dev/null
@@ -0,0 +1,64 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#     * v3
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |       /* v2
+#     |     /
+#     |   /    * v4, v5
+#     | /
+#     *
+#     v1
+#
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 0 10 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 0
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 651.466
+
+set nb_v_good 2
+set nb_e_good 9
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 18
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A4 b/tests/thrusection/specific/A4
new file mode 100755 (executable)
index 0000000..59012a2
--- /dev/null
@@ -0,0 +1,65 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#     * v3
+#     | \
+#     |   \
+#     |     \
+#     |       \
+#     |       /* v2
+#     |     /
+#     |   /    * v4, v5
+#     | /
+#     *
+#     v1
+#
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 0 10 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 1
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 651.466
+
+
+set nb_v_good 2
+set nb_e_good 9
+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 0
+set nb_shape_good 19
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A5 b/tests/thrusection/specific/A5
new file mode 100755 (executable)
index 0000000..34a754b
--- /dev/null
@@ -0,0 +1,60 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#              * v2
+#             / \
+#           /     \
+#         /    *    \
+#       /    v4, v5   \
+#     *----------------* v3
+#     v1
+#     
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 10 0 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 0
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 485.502
+
+set nb_v_good 5
+set nb_e_good 9
+set nb_w_good 6
+set nb_f_good 6
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 27
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A6 b/tests/thrusection/specific/A6
new file mode 100755 (executable)
index 0000000..5eb68bf
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#              * v2
+#             / \
+#           /     \
+#         /    *    \
+#       /    v4, v5   \
+#     *----------------* v3
+#     v1
+#     
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 10 0 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 1
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 485.502
+
+
+set nb_v_good 5
+set nb_e_good 9
+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 0
+set nb_shape_good 28
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A7 b/tests/thrusection/specific/A7
new file mode 100755 (executable)
index 0000000..a8bece4
--- /dev/null
@@ -0,0 +1,60 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#              * v2
+#             / \
+#           /     \
+#         /    *    \
+#       /    v4, v5   \
+#     *----------------* v3
+#     v1
+#     
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 10 0 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 0
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 646.621
+
+set nb_v_good 2
+set nb_e_good 9
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 18
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A8 b/tests/thrusection/specific/A8
new file mode 100755 (executable)
index 0000000..2585f95
--- /dev/null
@@ -0,0 +1,61 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#              * v2
+#             / \
+#           /     \
+#         /    *    \
+#       /    v4, v5   \
+#     *----------------* v3
+#     v1
+#     
+
+vertex v1 0 0 0
+vertex v2 5 5 0
+vertex v3 10 0 0
+
+vertex v4 5 2.5 20
+vertex v5 5 2.5 -20
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+set issolid 1
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 v5
+
+
+set square 646.621
+
+
+set nb_v_good 2
+set nb_e_good 9
+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 0
+set nb_shape_good 19
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/A9 b/tests/thrusection/specific/A9
new file mode 100755 (executable)
index 0000000..f32a29d
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1404.96
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B1 b/tests/thrusection/specific/B1
new file mode 100755 (executable)
index 0000000..89b082b
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1404.96
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B2 b/tests/thrusection/specific/B2
new file mode 100755 (executable)
index 0000000..01ec583
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1829.23
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B3 b/tests/thrusection/specific/B3
new file mode 100755 (executable)
index 0000000..7110d2c
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 1829.23
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B4 b/tests/thrusection/specific/B4
new file mode 100755 (executable)
index 0000000..96a5eb2
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 2160.94
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B5 b/tests/thrusection/specific/B5
new file mode 100755 (executable)
index 0000000..eeccab3
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 2160.94
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B6 b/tests/thrusection/specific/B6
new file mode 100755 (executable)
index 0000000..efe40fe
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 2598.48
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B7 b/tests/thrusection/specific/B7
new file mode 100755 (executable)
index 0000000..74c6d8a
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+circle c1 0 0 0 10
+mkedge e1 c1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 2597.01
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B8 b/tests/thrusection/specific/B8
new file mode 100755 (executable)
index 0000000..8872a57
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1021.13
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/B9 b/tests/thrusection/specific/B9
new file mode 100755 (executable)
index 0000000..9dc6c0e
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1021.13
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C1 b/tests/thrusection/specific/C1
new file mode 100755 (executable)
index 0000000..103cf6b
--- /dev/null
@@ -0,0 +1,42 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1346.42
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C2 b/tests/thrusection/specific/C2
new file mode 100755 (executable)
index 0000000..1914609
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 1346.42
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C3 b/tests/thrusection/specific/C3
new file mode 100755 (executable)
index 0000000..4e8bc03
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1353.78
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C4 b/tests/thrusection/specific/C4
new file mode 100755 (executable)
index 0000000..350d4e1
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1353.78
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C5 b/tests/thrusection/specific/C5
new file mode 100755 (executable)
index 0000000..3e98fa6
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 1683.87
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C6 b/tests/thrusection/specific/C6
new file mode 100755 (executable)
index 0000000..a40afe9
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 1683.87
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C7 b/tests/thrusection/specific/C7
new file mode 100755 (executable)
index 0000000..a517fb0
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 449.295
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C8 b/tests/thrusection/specific/C8
new file mode 100755 (executable)
index 0000000..a4e83b6
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 449.295
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/C9 b/tests/thrusection/specific/C9
new file mode 100755 (executable)
index 0000000..1b34d24
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 597.473
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D1 b/tests/thrusection/specific/D1
new file mode 100755 (executable)
index 0000000..c4c2afc
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 597.473
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D2 b/tests/thrusection/specific/D2
new file mode 100755 (executable)
index 0000000..d8563d0
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 740.079
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D3 b/tests/thrusection/specific/D3
new file mode 100755 (executable)
index 0000000..ef75aa7
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 740.079
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D4 b/tests/thrusection/specific/D4
new file mode 100755 (executable)
index 0000000..334c2b2
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 892.672
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D5 b/tests/thrusection/specific/D5
new file mode 100755 (executable)
index 0000000..cff590a
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 892.672
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D6 b/tests/thrusection/specific/D6
new file mode 100755 (executable)
index 0000000..72b0e39
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 245.485
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D7 b/tests/thrusection/specific/D7
new file mode 100755 (executable)
index 0000000..7f98e6e
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 245.485
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D8 b/tests/thrusection/specific/D8
new file mode 100755 (executable)
index 0000000..2e1ab60
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 327.161
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/D9 b/tests/thrusection/specific/D9
new file mode 100755 (executable)
index 0000000..5b69143
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 0 0 20
+vertex v2 0 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 327.161
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E1 b/tests/thrusection/specific/E1
new file mode 100755 (executable)
index 0000000..b13d6a8
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 400.925
+
+set nb_v_good 3
+set nb_e_good 5
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 13
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E2 b/tests/thrusection/specific/E2
new file mode 100755 (executable)
index 0000000..a0defcc
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 1
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 400.925
+
+
+set nb_v_good 3
+set nb_e_good 5
+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 0
+set nb_shape_good 14
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E3 b/tests/thrusection/specific/E3
new file mode 100755 (executable)
index 0000000..50013dd
--- /dev/null
@@ -0,0 +1,44 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 0
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+
+
+set square 485.498
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E4 b/tests/thrusection/specific/E4
new file mode 100755 (executable)
index 0000000..c2f190e
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+vertex v1 40 0 20
+vertex v2 40 0 -20
+
+set issolid 1
+set isruled 0
+catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+
+
+set square 422.859
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E5 b/tests/thrusection/specific/E5
new file mode 100755 (executable)
index 0000000..ff83ebe
--- /dev/null
@@ -0,0 +1,156 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 55 2.5 ${z4}
+# ending vertex
+vertex v5 55 2.5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 0
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 12651.5
+
+set nb_v_good 57
+set nb_e_good 121
+set nb_w_good 66
+set nb_f_good 66
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 311
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E6 b/tests/thrusection/specific/E6
new file mode 100755 (executable)
index 0000000..1d8b1af
--- /dev/null
@@ -0,0 +1,157 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 55 2.5 ${z4}
+# ending vertex
+vertex v5 55 2.5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 1
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 12651.5
+
+
+set nb_v_good 57
+set nb_e_good 121
+set nb_w_good 66
+set nb_f_good 66
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 312
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E7 b/tests/thrusection/specific/E7
new file mode 100755 (executable)
index 0000000..0939427
--- /dev/null
@@ -0,0 +1,158 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 55 2.5 ${z4}
+# ending vertex
+vertex v5 55 2.5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 0
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 56691.9
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E8 b/tests/thrusection/specific/E8
new file mode 100755 (executable)
index 0000000..9ea8b02
--- /dev/null
@@ -0,0 +1,159 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 55 2.5 ${z4}
+# ending vertex
+vertex v5 55 2.5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 1
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 56691.9
+
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 59
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/E9 b/tests/thrusection/specific/E9
new file mode 100755 (executable)
index 0000000..1e1f27b
--- /dev/null
@@ -0,0 +1,156 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 2.5 5 ${z4}
+# ending vertex
+vertex v5 2.5 5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 0
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 12301.8
+
+set nb_v_good 57
+set nb_e_good 121
+set nb_w_good 66
+set nb_f_good 66
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 311
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F1 b/tests/thrusection/specific/F1
new file mode 100755 (executable)
index 0000000..564b3f8
--- /dev/null
@@ -0,0 +1,157 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 2.5 5 ${z4}
+# ending vertex
+vertex v5 2.5 5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 1
+set isruled 1
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 12301.8
+
+
+set nb_v_good 57
+set nb_e_good 121
+set nb_w_good 66
+set nb_f_good 66
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 312
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F2 b/tests/thrusection/specific/F2
new file mode 100755 (executable)
index 0000000..77e93de
--- /dev/null
@@ -0,0 +1,158 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 2.5 5 ${z4}
+# ending vertex
+vertex v5 2.5 5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 0
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 37693.9
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F3 b/tests/thrusection/specific/F3
new file mode 100755 (executable)
index 0000000..f7789f1
--- /dev/null
@@ -0,0 +1,159 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# begining vertex
+vertex v4 2.5 5 ${z4}
+# ending vertex
+vertex v5 2.5 5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 1
+set isruled 0
+thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+
+
+set square 37693.9
+
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 59
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F4 b/tests/thrusection/specific/F4
new file mode 100755 (executable)
index 0000000..ab96192
--- /dev/null
@@ -0,0 +1,54 @@
+puts "TODO OCC7166 ALL: Faulty OCC7166 : result is not Closed shape"
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 0 0 20
+#vertex v2 0 0 -20
+circle c1 0 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 0 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 0
+set isruled 1
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 256.812
+
+set nb_v_good 6
+set nb_e_good 10
+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 25
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F5 b/tests/thrusection/specific/F5
new file mode 100755 (executable)
index 0000000..d1bfdf8
--- /dev/null
@@ -0,0 +1,55 @@
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 0 0 20
+#vertex v2 0 0 -20
+circle c1 0 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 0 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 1
+set isruled 1
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 256.875
+
+
+set nb_v_good 6
+set nb_e_good 10
+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 0
+set nb_shape_good 30
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F6 b/tests/thrusection/specific/F6
new file mode 100755 (executable)
index 0000000..40a9f3e
--- /dev/null
@@ -0,0 +1,55 @@
+puts "TODO OCC7166 ALL: Faulty OCC7166 : result is not Closed shape"
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 0 0 20
+#vertex v2 0 0 -20
+circle c1 0 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 0 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 0
+set isruled 0
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 332.724
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 15
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F7 b/tests/thrusection/specific/F7
new file mode 100755 (executable)
index 0000000..5826095
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+puts "TODO OCC7166 ALL: The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+##vertex v1 0 0 20
+#vertex v2 0 0 -20
+circle c1 0 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 0 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 1
+set isruled 0
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 314.974
+
+
+set nb_v_good 2
+set nb_e_good 3
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 9
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F8 b/tests/thrusection/specific/F8
new file mode 100755 (executable)
index 0000000..6d1fe61
--- /dev/null
@@ -0,0 +1,54 @@
+puts "TODO OCC7166 ALL: Faulty OCC7166 : result is not Closed shape"
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+
+puts "============"
+puts "OCC7166"
+puts "============"
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+cpulimit 1400
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 40 0 20
+#vertex v2 40 0 -20
+circle c1 40 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 40 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 0
+set isruled 1
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 419.103
+
+set nb_v_good 6
+set nb_e_good 10
+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 25
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/F9 b/tests/thrusection/specific/F9
new file mode 100755 (executable)
index 0000000..c8efa92
--- /dev/null
@@ -0,0 +1,55 @@
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 40 0 20
+#vertex v2 40 0 -20
+circle c1 40 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 40 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 1
+set isruled 1
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 419.166
+
+
+set nb_v_good 6
+set nb_e_good 10
+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 0
+set nb_shape_good 30
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/G1 b/tests/thrusection/specific/G1
new file mode 100755 (executable)
index 0000000..a01fb4f
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC7166 ALL: Faulty OCC7166 : result is not Closed shape"
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 40 0 20
+#vertex v2 40 0 -20
+circle c1 40 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 40 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 0
+set isruled 0
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2}
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 702.858
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 15
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/G2 b/tests/thrusection/specific/G2
new file mode 100755 (executable)
index 0000000..7374963
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbc1
+wire w1 e1
+
+#vertex v1 40 0 20
+#vertex v2 40 0 -20
+circle c1 40 0 20  0 0 -1  -1 1 0  0.1
+mkedge ec1 c1
+wire wc1 ec1
+
+circle c2 40 0 -20  0 0 -1  -1 1 0  0.1
+mkedge ec2 c2
+wire wc2 ec2
+
+set issolid 1
+set isruled 0
+#catch {thrusections result ${issolid} ${isruled} v1 w1 v2 }
+catch {thrusections result ${issolid} ${isruled} wc1 w1 wc2}
+
+
+set square 702.921
+
+
+set nb_v_good 4
+set nb_e_good 6
+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 0
+set nb_shape_good 20
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/G3 b/tests/thrusection/specific/G3
new file mode 100755 (executable)
index 0000000..1cb6827
--- /dev/null
@@ -0,0 +1,179 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+set z5 30
+set z6 10
+
+# begining vertex
+vertex v4 55 2.5 ${z4}
+# ending vertex
+vertex v5 55 2.5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top beziercurve
+beziercurve bzc1 5 5 5 ${z5} 5 -5 ${z5} -5 -5 ${z5} -5 5 ${z5} 5 5 ${z5}
+mkedge ebzc1 bzc1
+wire wbzc1 ebzc1
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+
+# top pbsplinecurve
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 ${z6} 1 -2 2 ${z6} 1 0 1 ${z6} 1 2 2 ${z6} 1 1 0 ${z6} 1 2 -2 ${z6} 1 0 -1 ${z6} 1 -2 -2 ${z6} 1
+mkedge epbc1 pbc1
+wire wpbc1 epbc1
+# octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom pbsplinecurve
+pbsplinecurve pbc2 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 -${z6} 1 -2 2 -${z6} 1 0 1 -${z6} 1 2 2 -${z6} 1 1 0 -${z6} 1 2 -2 -${z6} 1 0 -1 -${z6} 1 -2 -2 -${z6} 1
+mkedge epbc2 pbc2
+wire wpbc2 epbc2
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom beziercurve
+beziercurve bzc2 5 5 5 -${z5} 5 -5 -${z5} -5 -5 -${z5} -5 5 -${z5} 5 5 -${z5}
+mkedge ebzc2 bzc2
+wire wbzc2 ebzc2
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 0
+set isruled 1
+#thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+thrusections result ${issolid} ${isruled} v4 w1 wbzc1 w11 wpbc1 w21 wpbc2 w111 wbzc2 w101 v5
+
+
+set square 12786.5
+
+set nb_v_good 101
+set nb_e_good 209
+set nb_w_good 110
+set nb_f_good 110
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 531
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/G4 b/tests/thrusection/specific/G4
new file mode 100755 (executable)
index 0000000..7d14ebb
--- /dev/null
@@ -0,0 +1,182 @@
+puts "TODO OCC7166 ALL: The resulting shape is WRONG "
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+set z5 30
+set z6 10
+
+# begining vertex
+vertex v4 55 2.5 ${z4}
+# ending vertex
+vertex v5 55 2.5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top beziercurve
+beziercurve bzc1 5 5 5 ${z5} 5 -5 ${z5} -5 -5 ${z5} -5 5 ${z5} 5 5 ${z5}
+mkedge ebzc1 bzc1
+wire wbzc1 ebzc1
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+
+# top pbsplinecurve
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 ${z6} 1 -2 2 ${z6} 1 0 1 ${z6} 1 2 2 ${z6} 1 1 0 ${z6} 1 2 -2 ${z6} 1 0 -1 ${z6} 1 -2 -2 ${z6} 1
+mkedge epbc1 pbc1
+wire wpbc1 epbc1
+# octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom pbsplinecurve
+pbsplinecurve pbc2 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 -${z6} 1 -2 2 -${z6} 1 0 1 -${z6} 1 2 2 -${z6} 1 1 0 -${z6} 1 2 -2 -${z6} 1 0 -1 -${z6} 1 -2 -2 -${z6} 1
+mkedge epbc2 pbc2
+wire wpbc2 epbc2
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom beziercurve
+beziercurve bzc2 5 5 5 -${z5} 5 -5 -${z5} -5 -5 -${z5} -5 5 -${z5} 5 5 -${z5}
+mkedge ebzc2 bzc2
+wire wbzc2 ebzc2
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 1
+set isruled 1
+#thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+thrusections result ${issolid} ${isruled} v4 w1 wbzc1 w11 wpbc1 w21 wpbc2 w111 wbzc2 w101 v5
+
+
+set square 12786.5
+
+
+set nb_v_good 101
+set nb_e_good 209
+set nb_w_good 110
+set nb_f_good 110
+set nb_sh_good 1
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 532
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/G5 b/tests/thrusection/specific/G5
new file mode 100755 (executable)
index 0000000..5c74d1e
--- /dev/null
@@ -0,0 +1,179 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+set z5 30
+set z6 10
+
+# begining vertex
+vertex v4 2.5 5 ${z4}
+# ending vertex
+vertex v5 2.5 5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top beziercurve
+beziercurve bzc1 5 5 5 ${z5} 5 -5 ${z5} -5 -5 ${z5} -5 5 ${z5} 5 5 ${z5}
+mkedge ebzc1 bzc1
+wire wbzc1 ebzc1
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+
+# top pbsplinecurve
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 ${z6} 1 -2 2 ${z6} 1 0 1 ${z6} 1 2 2 ${z6} 1 1 0 ${z6} 1 2 -2 ${z6} 1 0 -1 ${z6} 1 -2 -2 ${z6} 1
+mkedge epbc1 pbc1
+wire wpbc1 epbc1
+# octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom pbsplinecurve
+pbsplinecurve pbc2 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 -${z6} 1 -2 2 -${z6} 1 0 1 -${z6} 1 2 2 -${z6} 1 1 0 -${z6} 1 2 -2 -${z6} 1 0 -1 -${z6} 1 -2 -2 -${z6} 1
+mkedge epbc2 pbc2
+wire wpbc2 epbc2
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom beziercurve
+beziercurve bzc2 5 5 5 -${z5} 5 -5 -${z5} -5 -5 -${z5} -5 5 -${z5} 5 5 -${z5}
+mkedge ebzc2 bzc2
+wire wbzc2 ebzc2
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 0
+set isruled 1
+#thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+thrusections result ${issolid} ${isruled} v4 w1 wbzc1 w11 wpbc1 w21 wpbc2 w111 wbzc2 w101 v5
+
+
+set square 12436.8
+
+set nb_v_good 101
+set nb_e_good 209
+set nb_w_good 110
+set nb_f_good 110
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 531
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/G6 b/tests/thrusection/specific/G6
new file mode 100755 (executable)
index 0000000..f9244b2
--- /dev/null
@@ -0,0 +1,180 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+#
+#
+#
+#
+#
+#                     v22                    v21
+#                     *----------------------*
+#                    /                        \
+#                   /                          \
+#                  / v12                   v11  \
+#                 /  *---------------------*     \
+#                /   |                     |      \
+#               /    |                     |       \
+#              * v23 |  * v3               |    v28 *
+#              |     |  | \                |        |
+#              |     |  |   \              |        |
+#              |     |  |     \            |        |
+#              |     |  |       \          |        |
+#              |     |  |       /* v2      |        |
+#              |     |  |     /            |        |
+#              |     |  |   /              |        |        * v4, v5
+#              |     |  | /                |        |
+#              |     |  *                  |        |
+#              |     |  v1                 |        |
+#              |     |                     |        |
+#              |     |                     |        |
+#              * v24 |                     |    v27 *
+#               \    |                     |       /
+#                \   *---------------------*      /
+#                 \  v13                   v14   /
+#                  \                            /
+#                   \                          /
+#                    \ v25                v26 /
+#                     *----------------------*
+#
+#
+#
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+set z5 30
+set z6 10
+
+# begining vertex
+vertex v4 2.5 5 ${z4}
+# ending vertex
+vertex v5 2.5 5 -${z4}
+
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top beziercurve
+beziercurve bzc1 5 5 5 ${z5} 5 -5 ${z5} -5 -5 ${z5} -5 5 ${z5} 5 5 ${z5}
+mkedge ebzc1 bzc1
+wire wbzc1 ebzc1
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+
+# top pbsplinecurve
+pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 ${z6} 1 -2 2 ${z6} 1 0 1 ${z6} 1 2 2 ${z6} 1 1 0 ${z6} 1 2 -2 ${z6} 1 0 -1 ${z6} 1 -2 -2 ${z6} 1
+mkedge epbc1 pbc1
+wire wpbc1 epbc1
+# octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom pbsplinecurve
+pbsplinecurve pbc2 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 -${z6} 1 -2 2 -${z6} 1 0 1 -${z6} 1 2 2 -${z6} 1 1 0 -${z6} 1 2 -2 -${z6} 1 0 -1 -${z6} 1 -2 -2 -${z6} 1
+mkedge epbc2 pbc2
+wire wpbc2 epbc2
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom beziercurve
+beziercurve bzc2 5 5 5 -${z5} 5 -5 -${z5} -5 -5 -${z5} -5 5 -${z5} 5 5 -${z5}
+mkedge ebzc2 bzc2
+wire wbzc2 ebzc2
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+
+#
+set issolid 1
+set isruled 1
+#thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
+thrusections result ${issolid} ${isruled} v4 w1 wbzc1 w11 wpbc1 w21 wpbc2 w111 wbzc2 w101 v5
+
+
+set square 12436.8
+
+
+set nb_v_good 101
+set nb_e_good 209
+set nb_w_good 110
+set nb_f_good 110
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 532
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H1 b/tests/thrusection/specific/H1
new file mode 100755 (executable)
index 0000000..00c3cee
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 1187.23
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H2 b/tests/thrusection/specific/H2
new file mode 100755 (executable)
index 0000000..2b2588b
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1192.53
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H3 b/tests/thrusection/specific/H3
new file mode 100755 (executable)
index 0000000..63d74b1
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 1187.23
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H4 b/tests/thrusection/specific/H4
new file mode 100755 (executable)
index 0000000..ea67507
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1192.53
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H5 b/tests/thrusection/specific/H5
new file mode 100755 (executable)
index 0000000..9c0f206
--- /dev/null
@@ -0,0 +1,53 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 0 0 -20
+
+# 2 vertex
+vertex v2 0 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 790.139
+
+set nb_v_good 2
+set nb_e_good 9
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 18
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H6 b/tests/thrusection/specific/H6
new file mode 100755 (executable)
index 0000000..9a86b66
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 5 2.5 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 1198.3
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H7 b/tests/thrusection/specific/H7
new file mode 100755 (executable)
index 0000000..1a010d4
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 5 2.5 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1192.88
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H8 b/tests/thrusection/specific/H8
new file mode 100755 (executable)
index 0000000..65d3139
--- /dev/null
@@ -0,0 +1,41 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 5 2.5 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 1187.23
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/H9 b/tests/thrusection/specific/H9
new file mode 100755 (executable)
index 0000000..a0e64a7
--- /dev/null
@@ -0,0 +1,43 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 5 2.5 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1192.53
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 17
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I1 b/tests/thrusection/specific/I1
new file mode 100755 (executable)
index 0000000..9cf3191
--- /dev/null
@@ -0,0 +1,53 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+polyline s2 0 5 0  5 0 0 -5 -5 0  0 5 0
+
+# 1 vertex
+vertex v1 5 2.5 -20
+
+# 2 vertex
+vertex v2 5 2.5 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 795.95
+
+set nb_v_good 2
+set nb_e_good 9
+set nb_w_good 3
+set nb_f_good 3
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 18
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I2 b/tests/thrusection/specific/I2
new file mode 100755 (executable)
index 0000000..122400d
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 1294.43
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I3 b/tests/thrusection/specific/I3
new file mode 100755 (executable)
index 0000000..e9a0467
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1313.1
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I4 b/tests/thrusection/specific/I4
new file mode 100755 (executable)
index 0000000..b14c4ea
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 1294.43
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I5 b/tests/thrusection/specific/I5
new file mode 100755 (executable)
index 0000000..361a535
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1313.1
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I6 b/tests/thrusection/specific/I6
new file mode 100755 (executable)
index 0000000..80876a9
--- /dev/null
@@ -0,0 +1,55 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+# 2 vertex
+vertex v2 0 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 858.182
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I7 b/tests/thrusection/specific/I7
new file mode 100755 (executable)
index 0000000..f99ef06
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 2121.34
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I8 b/tests/thrusection/specific/I8
new file mode 100755 (executable)
index 0000000..40bfc07
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 2285.24
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/I9 b/tests/thrusection/specific/I9
new file mode 100755 (executable)
index 0000000..a358bdf
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 1294.43
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J1 b/tests/thrusection/specific/J1
new file mode 100755 (executable)
index 0000000..12dd00c
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1313.1
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J2 b/tests/thrusection/specific/J2
new file mode 100755 (executable)
index 0000000..cdc1ac4
--- /dev/null
@@ -0,0 +1,55 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+circle c1 0 0 0 5
+mkedge ec1 c1
+wire s2 ec1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+# 2 vertex
+vertex v2 40 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 1277.32
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J3 b/tests/thrusection/specific/J3
new file mode 100755 (executable)
index 0000000..5d4fa1b
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 2042.02
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J4 b/tests/thrusection/specific/J4
new file mode 100755 (executable)
index 0000000..36cd947
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 2081.25
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J5 b/tests/thrusection/specific/J5
new file mode 100755 (executable)
index 0000000..32890b1
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 2042.02
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J6 b/tests/thrusection/specific/J6
new file mode 100755 (executable)
index 0000000..35c415b
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 2081.25
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J7 b/tests/thrusection/specific/J7
new file mode 100755 (executable)
index 0000000..ab011f2
--- /dev/null
@@ -0,0 +1,55 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+# 2 vertex
+vertex v2 0 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 1346.42
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J8 b/tests/thrusection/specific/J8
new file mode 100755 (executable)
index 0000000..9291dbf
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 2707.56
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/J9 b/tests/thrusection/specific/J9
new file mode 100755 (executable)
index 0000000..519c226
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 2736.65
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K1 b/tests/thrusection/specific/K1
new file mode 100755 (executable)
index 0000000..8da0fa3
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 2042.02
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K2 b/tests/thrusection/specific/K2
new file mode 100755 (executable)
index 0000000..bc2702c
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 2081.25
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K3 b/tests/thrusection/specific/K3
new file mode 100755 (executable)
index 0000000..95e177a
--- /dev/null
@@ -0,0 +1,55 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+ellipse ellipse1 0 0 0 10 5
+mkedge e1 ellipse1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+# 2 vertex
+vertex v2 40 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 1683.87
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K4 b/tests/thrusection/specific/K4
new file mode 100755 (executable)
index 0000000..833f6c2
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K5 b/tests/thrusection/specific/K5
new file mode 100755 (executable)
index 0000000..3d7dc4c
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 901.663
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K6 b/tests/thrusection/specific/K6
new file mode 100755 (executable)
index 0000000..efb7288
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K7 b/tests/thrusection/specific/K7
new file mode 100755 (executable)
index 0000000..dd4405b
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 901.663
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K8 b/tests/thrusection/specific/K8
new file mode 100755 (executable)
index 0000000..7abc2f4
--- /dev/null
@@ -0,0 +1,55 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+# 2 vertex
+vertex v2 0 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 597.473
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/K9 b/tests/thrusection/specific/K9
new file mode 100755 (executable)
index 0000000..97918ed
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+buildsweep result
+
+
+set square 1480.16
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L1 b/tests/thrusection/specific/L1
new file mode 100755 (executable)
index 0000000..c9ceb3c
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 1465.92
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L2 b/tests/thrusection/specific/L2
new file mode 100755 (executable)
index 0000000..eeda0e0
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+buildsweep result
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L3 b/tests/thrusection/specific/L3
new file mode 100755 (executable)
index 0000000..066e85e
--- /dev/null
@@ -0,0 +1,45 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+buildsweep result
+
+
+set square 901.663
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L4 b/tests/thrusection/specific/L4
new file mode 100755 (executable)
index 0000000..a05c8af
--- /dev/null
@@ -0,0 +1,55 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+beziercurve bc1 5 5 5 0 5 -5 0 -5 -5 0 -5 5 0 5 5 0
+mkedge e1 bc1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+# 2 vertex
+vertex v2 40 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+buildsweep result
+
+
+set square 892.672
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L5 b/tests/thrusection/specific/L5
new file mode 100755 (executable)
index 0000000..0d3421e
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L6 b/tests/thrusection/specific/L6
new file mode 100755 (executable)
index 0000000..90d173b
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L7 b/tests/thrusection/specific/L7
new file mode 100755 (executable)
index 0000000..5a5405c
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L8 b/tests/thrusection/specific/L8
new file mode 100755 (executable)
index 0000000..13a001b
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/L9 b/tests/thrusection/specific/L9
new file mode 100755 (executable)
index 0000000..0093030
--- /dev/null
@@ -0,0 +1,57 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 0 0 -20
+
+# 2 vertex
+vertex v2 0 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M1 b/tests/thrusection/specific/M1
new file mode 100755 (executable)
index 0000000..447237c
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M2 b/tests/thrusection/specific/M2
new file mode 100755 (executable)
index 0000000..32e6813
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1
+addsweep s2 -T
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M3 b/tests/thrusection/specific/M3
new file mode 100755 (executable)
index 0000000..47d47d3
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M4 b/tests/thrusection/specific/M4
new file mode 100755 (executable)
index 0000000..2d6fbef
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+mksweep s1
+
+addsweep v1 -T
+addsweep s2 -T
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M5 b/tests/thrusection/specific/M5
new file mode 100755 (executable)
index 0000000..79391e4
--- /dev/null
@@ -0,0 +1,57 @@
+puts "TODO OCC7166 ALL: Error : The square of the resulting shape is"
+
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+# spine
+polyline s1 0 0 20 0 0 -20
+
+# profile
+pbsplinecurve pbs1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 0 1 -2 2 0 1 0 1 0 1 2 2 0 1 1 0 0 1 2 -2 0 1 0 -1 0 1 -2 -2 0 1
+mkedge e1 pbs1
+wire s2 e1
+
+# 1 vertex
+vertex v1 40 0 -20
+
+# 2 vertex
+vertex v2 40 0 20
+
+mksweep s1
+
+addsweep v1
+addsweep s2
+addsweep v2
+
+catch {buildsweep result}
+
+
+set square 898.589
+
+set nb_v_good 2
+set nb_e_good 3
+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 0
+set nb_shape_good 8
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M6 b/tests/thrusection/specific/M6
new file mode 100755 (executable)
index 0000000..cb9292f
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 0 0 ${z4}
+# ending vertex
+vertex v5 0 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4
+addsweep w1
+addsweep w11
+addsweep w21
+addsweep w111
+addsweep w101
+addsweep v5
+
+catch {buildsweep result}
+
+
+set square 89897.2
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M7 b/tests/thrusection/specific/M7
new file mode 100755 (executable)
index 0000000..85ad701
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 0 0 ${z4}
+# ending vertex
+vertex v5 0 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4
+addsweep w1 -T
+addsweep w11 -T
+addsweep w21 -T
+addsweep w111 -T
+addsweep w101 -T
+addsweep v5
+
+catch {buildsweep result}
+
+
+set square 270505
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M8 b/tests/thrusection/specific/M8
new file mode 100755 (executable)
index 0000000..2ea1ae8
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 0 0 ${z4}
+# ending vertex
+vertex v5 0 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4 -T
+addsweep w1
+addsweep w11
+addsweep w21
+addsweep w111
+addsweep w101
+addsweep v5 -T
+
+catch {buildsweep result}
+
+
+set square 89897.2
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/M9 b/tests/thrusection/specific/M9
new file mode 100755 (executable)
index 0000000..2f75922
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 0 0 ${z4}
+# ending vertex
+vertex v5 0 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4 -T
+addsweep w1 -T
+addsweep w11 -T
+addsweep w21 -T
+addsweep w111 -T
+addsweep w101 -T
+addsweep v5 -T
+
+catch {buildsweep result}
+
+
+set square 270505
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/N1 b/tests/thrusection/specific/N1
new file mode 100755 (executable)
index 0000000..35ae096
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 40 0 ${z4}
+# ending vertex
+vertex v5 40 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4
+addsweep w1
+addsweep w11
+addsweep w21
+addsweep w111
+addsweep w101
+addsweep v5
+
+catch {buildsweep result}
+
+
+set square 91551
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/N2 b/tests/thrusection/specific/N2
new file mode 100755 (executable)
index 0000000..6560edb
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 40 0 ${z4}
+# ending vertex
+vertex v5 40 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4
+addsweep w1 -T
+addsweep w11 -T
+addsweep w21 -T
+addsweep w111 -T
+addsweep w101 -T
+addsweep v5
+
+catch {buildsweep result}
+
+
+set square 254037
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/N3 b/tests/thrusection/specific/N3
new file mode 100755 (executable)
index 0000000..f0d8911
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 40 0 ${z4}
+# ending vertex
+vertex v5 40 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4 -T
+addsweep w1
+addsweep w11
+addsweep w21
+addsweep w111
+addsweep w101
+addsweep v5 -T
+
+catch {buildsweep result}
+
+
+set square 89897.2
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+
diff --git a/tests/thrusection/specific/N4 b/tests/thrusection/specific/N4
new file mode 100755 (executable)
index 0000000..85e63e2
--- /dev/null
@@ -0,0 +1,128 @@
+puts "============"
+puts "OCC7166"
+puts "============"
+puts ""
+#######################################################################
+# Improvement of API of ThruSection
+#######################################################################
+
+set BugNumber OCC7166
+
+set z1 40
+set z2 20
+set z3 0
+set z4 100
+
+# spine
+polyline s1 0 0 ${z4} 0 0 -${z4}
+
+# begining vertex
+vertex v4 40 0 ${z4}
+# ending vertex
+vertex v5 40 0 -${z4}
+
+# profile
+# top triangle
+vertex v1 0 0 ${z1}
+vertex v2 5 5 ${z1}
+vertex v3 0 10 ${z1}
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v1
+
+wire w1 e1 e2 e3
+
+# top quadrangle
+vertex v11 15 15 ${z2}
+vertex v12 -15 15 ${z2}
+vertex v13 -15 -15 ${z2}
+vertex v14 15 -15 ${z2}
+
+edge e11 v11 v12
+edge e12 v12 v13
+edge e13 v13 v14
+edge e14 v14 v11
+
+wire w11 e11 e12 e13 e14
+# top octagon
+vertex v21 25 25 ${z3}
+vertex v22 -25 25 ${z3}
+vertex v23 -30 10 ${z3}
+vertex v24 -30 -10 ${z3}
+vertex v25 -25 -25 ${z3}
+vertex v26 25 -25 ${z3}
+vertex v27 30 -10 ${z3}
+vertex v28 30 10 ${z3}
+
+edge e21 v21 v22
+edge e22 v22 v23
+edge e23 v23 v24
+edge e24 v24 v25
+edge e25 v25 v26
+edge e26 v26 v27
+edge e27 v27 v28
+edge e28 v28 v21
+
+wire w21 e21 e22 e23 e24 e25 e26 e27 e28
+
+# bottom quadrangle
+vertex v111 15 15 -${z2}
+vertex v112 -15 15 -${z2}
+vertex v113 -15 -15 -${z2}
+vertex v114 15 -15 -${z2}
+
+edge e111 v111 v112
+edge e112 v112 v113
+edge e113 v113 v114
+edge e114 v114 v111
+
+wire w111 e111 e112 e113 e114
+
+# bottom triangle
+vertex v101 0 0 -${z1}
+vertex v102 5 5 -${z1}
+vertex v103 0 10 -${z1}
+
+edge e101 v101 v102
+edge e102 v102 v103
+edge e103 v103 v101
+
+wire w101 e101 e102 e103
+
+mksweep s1
+
+addsweep v4 -T
+addsweep w1 -T
+addsweep w11 -T
+addsweep w21 -T
+addsweep w111 -T
+addsweep w101 -T
+addsweep v5 -T
+
+catch {buildsweep result}
+
+
+set square 270505
+
+set nb_v_good 2
+set nb_e_good 33
+set nb_w_good 11
+set nb_f_good 11
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 58
+
+
+
+set index [lsearch [whatis result] Closed]
+if {$index == -1} {
+  puts "Faulty ${BugNumber} : result is not Closed shape"
+  
+}
+
+set 3dviewer 0
+