puts "========" puts "BUC60897" puts "========" pload QAcommands if [catch { set result [BUC60897] } ] { puts "BUC60897: Error; (case 1)" } else { set len [llength ${result}] if {${len} < 21} { puts "length = ${len}" puts "BUC60897: Error; (case 2)" } else { set circle_X [lindex ${result} 3] set circle_Y [lindex ${result} 5] set circle_R [lindex ${result} 7] set tangency1_X [lindex ${result} 11] set tangency1_Y [lindex ${result} 13] set tangency2_X [lindex ${result} 17] set tangency2_Y [lindex ${result} 19] set x1 [expr abs(${tangency1_X} - ${circle_X})] set y1 [expr abs(${tangency1_Y} - ${circle_Y})] set R1 [expr sqrt(${x1} * ${x1} + ${y1} * ${y1})] set x2 [expr abs(${tangency2_X} - ${circle_X})] set y2 [expr abs(${tangency2_Y} - ${circle_Y})] set R2 [expr sqrt(${x2} * ${x2} + ${y2} * ${y2})] set maxdelta 1.0 set delta_R1 [expr abs(${R1} - ${circle_R}) / ${circle_R} * 100.] set delta_R2 [expr abs(${R2} - ${circle_R}) / ${circle_R} * 100.] if {${delta_R1} > ${maxdelta}} { puts "circle_X = ${circle_X}" puts "circle_Y = ${circle_Y}" puts "circle_R = ${circle_R}" puts "tangency1_X = ${tangency1_X}" puts "tangency1_Y = ${tangency1_Y}" puts "x1 = ${x1}" puts "y1 = ${y1}" puts "R1 = ${R1}" puts "delta_R1 = ${delta_R1}" puts "maxdelta = ${maxdelta}" puts "BUC60897: Error; (case 3)" } else { puts "BUC60897: OK; (case 1)" } if {${delta_R2} > ${maxdelta}} { puts "circle_X = ${circle_X}" puts "circle_Y = ${circle_Y}" puts "circle_R = ${circle_R}" puts "tangency2_X = ${tangency2_X}" puts "tangency2_Y = ${tangency2_Y}" puts "x2 = ${x2}" puts "y2 = ${y2}" puts "R2 = ${R2}" puts "delta_R2 = ${delta_R2}" puts "maxdelta = ${maxdelta}" puts "BUC60897: Error; (case 4)" } else { puts "BUC60897: OK; (case 2)" } } }