From 8e89d901a71101caa9f4c9c5e41efeacccab2154 Mon Sep 17 00:00:00 2001 From: Jeremy Mack Wright Date: Mon, 17 Aug 2015 08:29:25 -0400 Subject: [PATCH] Added a few more test cases for CQ.py. --- .coverage | Bin 7943 -> 8468 bytes tests/TestCadQuery.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/.coverage b/.coverage index 4129eb8cab1bdf69e0c7737f3544328908a0a655..0a4ac1cdc4f9f8b8c7b1f3762d27598e6120b97c 100644 GIT binary patch delta 4508 zcmbu@d6X5^wa0Pl?0xE-f~FapQJ-KG1Ru0BHZm!Q%Hb;_HUja|0^QOKJ=`7?G_ETW zCsYJl9Aic&2qL64K1D!~fDup;Gy#Xi0S(3>CMM=NzV7nj@MqdT?ppQNUi+N8cKtrP zt{HaoX-iHhDk&_lswgX*eM!x%ndNnbqiU+Er&rA@98*?PRx!V1RMm|7in7YO+QO03 zO2^li)yywEr>1Il*^Ii{h5_Ar<;^Ussu);3KO1MVuCY&>A*Sg37T4?9y_fn-HfbE* zJw!#5TUux76P+8L>XEOlGubu``+7{Ccuq?z70#GenoZCA^~1>V&8N-FWZO2BL_Ko- zLSZ;IoE(b6;4mZ%4a39OKsY;$3+IG$!_-g`N<&$=D3pg;VRo1sD#L=XFkBt33D<^2 z;rei6xG6M*o5S*OYq%}k5mts(;eoI^tO*Z=--buRV_{u*JZuOX!=|u3>mt@iY>3zxu__>IsgJS6;9*e>i4b_&l3&kD~8 zdxRH+KL~q;w}p3vzY6aP?+JesJ{0~g{6qLi_^0qM;orh1LcY>YX|HrpI%$pqJp5;c% z63bFcL(a0?a*O3w%bk{=Snjg?%<>D%Cd+2a7Ry%4Hp}lV+bugRJ1x&zc3E~?_FLYv z9I(7=dC&5JM({GNwAFCgzHm1u+X_Ziu-tW^v4tm}N0{ z#r!npmodMJxjW{bnEPT@#H@^YAZB~aj+kd+_Qd2~jM*ErFXp9~S7Kg^Y2}C<;)orI zqqU=rBhS&+k?&~l=o(Y~}&qU88 z&rDCbXO?G%(L9H+Vh}ijc2W=(etop zi)WkXY0q}g4$n@{vz}d^&pcmxS|vmYCP5N3!6vwbBq1-MZ9@BmjtQL-PEIIFI3?lK zgpmoO5=JMSabdz)31bq*CX7osH(^3Tal-ita}z2ODif-bvf|Q~CSXIR=K#&mWZN|? z?s;_4l$Mrhj^uX=+G+btwnO9R1=mI`FV%2E+aKgQW{PQPFW-cEO?_ouS#4cybE0?3 zWIG=fqF{mq4M}Jd@rv;g8m&OtKkDFY3LuW&Q zp^KrLp@-oRL+>;Zk2Lf#^fmM|3^WuPjx!u@ILR=`FxW7}Fw`*2aH?UX;dH}j!x@G# z1`OvOjM9mQ$%ZM09~!0_N(>horW;BP<+(IwXB*}i<{Bytm4+%qwIOS$G1MF89n9e$ zHD#>f3d5C#g@&usSia7%$Z);k2E$^*Qp0k?Er#0+cNp$8+-3Ng;cmk{hIA zoyPcDljApOfW|xn zJ5qZzspA(ZJnk0m7gh)>g$IPy-=fGv!o$M<2#-pRb;9GqdSQd`gs?@}Dr^&;5}rQD zl&_5Pys$f!%8RK~{+MEApYXEqitwuNC*jY+>%tqto5FtKE#WW1fp3B4ec^*|nI_kS zny*Cjaf+J%OAkw zxnN(8Kl^IH@a*;AinWI!FHA-!2tBX@x%~LK_E>kXVvXZh;`Eirknyhurx0JOq zh1M$N0cEwaR(Vu;Oj)O_S2idcl}*ZK{+h zYS&D*TVsbq9x=J50XjAvpc4+#yJ>p98ke(#kWS3kBQo{ic+3>$rh`!_R5y=DS@Db( zwI*Nfs{gIsGua*unQkY3uhp_+(;hr-db$8N=SI&=_K=3+g7b?ewWznI)|vz2$*v=c zTAtBO_ulZSZ>xu8vb`GflIo~vVvC!ZdYJakWDj4uprB}KON%sI>HD7ggG}~_&~aMv z_qdnddSoWsXX*aqb7NZC$~R$OTUJ+J-TaUB%@j}g56kuY`kTi$^-?($mXyq@oK;s+ c(p>ncOtxP`fgkxjF7DpeeQp0tef_}y1J_Au!~g&Q delta 3953 zcmbW)dz_8c9>?*X^;_#%Yh#*m$zbGOYRHsJ!G&g+#q|Ls4X-+F%g`Q!V2uLbAMY&)-M zZs)ua)U&L58u=G@)!8tzQ7Oi2|vsa_apr% zf0-ZS$NB00YCqG@^4Iy<{suqC&+`lX&3>W3)i3h5`xSnrU*%W(HGZ96?;rC|`VIam z|FnO`Z}i*!4!_Iq_V4=l{eFMIf8`IR{2~9f|JEPzM+pO5K%;;&1DXf42xuA5Dxgh3 z+knmiT>`oWbPMnS1oQ~#8PF>rKcH_w|A31F;sFB#3IYZN3<*dCToy1UpfI2)U~0gX z0oMo24wxITG)Qq@!2JQs0+t7?2v`}gI$%Sx6~EEy5z6vdQwCWwYgZ z%NEO4%Qnkfmd`AoTlQJLwCuMWuzY9v-g4OTgXKrd5u4&@@jq~!=*V)EcT{jxaa46w zbL2QqcAV*G>Nwlc+|k0(($U4y)zQt--O+%xjFA_kaf~K0n#B_No&Hor zHU6R%yVt6&%f*u!>Cv@1=Jx#4;9txYH&{BmW~Ig_#*>-8!r=V;(u~$h@2Q@lv*O9} zYxh+jAC&gJKh>&qMum8OuTs5o{*6voj3+CtS=3tP`qGS6OuNji)JgIDR>wV+H)Qb8 zWQjWR3KJ8H#+MX*<#>LV|6_h)qOce-eG(N4C;ldxlGC!|$tr92W^Pca@`}oeY(+Ii zj-tAvMpTLQ6!jISDH2hzhe+)S2xR=PEiYx+uCSyrPGqr=pjl zchso)ihhdzinwB+qChc7F<5b_Vn|9cRFO~&Qw)!4cZ_1JV!R@$n5ZaHOjca3xFV|K zzZX}n;wr^7#f+$(uUE`g+^CqVn5Vc&u|Tm%ahu|H#bU)0#a)Vf6!$6aS1ebo`lG~C ztc{9%UDV}|DIQlmq1d2!M)9m-V^r{)6VF~UaD<#6g`b6^!U>u{qcoz?ny?ra znwX}HrmUu%CgT_jl~5>KQ$(M;9+O>>oIT4buL zH8VA{G}mcv(9G4$)1*t3)rwm*cWRbs?$+F^6ZzeaJ7v<7a_Z=+@np619Xb6eM8XJXZ zNo>}RC+nogX6ED`e-xM88_O3aMi*Zu$4w|KIizkpS#ND)@j-4WKJ}xzjy@%xJT?7} z?w?!Avb?oihOQq^o|b-~T!Y*TkNXo8Z=S19k0*22F3Dc6+Wi_i&4qTtuSwHMI6sP( b-oHi5fGAo92?=4CFkBcZjFv=EQKSC=9&N0l diff --git a/tests/TestCadQuery.py b/tests/TestCadQuery.py index a7d7720..975feca 100644 --- a/tests/TestCadQuery.py +++ b/tests/TestCadQuery.py @@ -525,6 +525,17 @@ class TestCadQuery(BaseTest): self.saveModel(t) self.assertEqual(12,t.faces().size() ) + def testCut(self): + """ + Tests the cut function by itself to catch the case where a Solid object is passed. + """ + s = Workplane(Plane.XY()) + currentS = s.rect(2.0,2.0).extrude(0.5) + toCut = s.rect(1.0,1.0).extrude(0.5) + + currentS.cut(toCut.val()) + + self.assertEqual(10,currentS.faces().size()) def testCutThroughAll(self): """ @@ -1041,6 +1052,25 @@ class TestCadQuery(BaseTest): s = s.union(oo) print "Total time %0.3f" % (time.time() - beginTime) + #Test unioning a Solid object + s = Workplane(Plane.XY()) + currentS = s.rect(2.0,2.0).extrude(0.5) + toUnion = s.rect(1.0,1.0).extrude(1.0) + + currentS.union(toUnion.val(), combine=False) + + #TODO: When unioning and combining is figured out, uncomment the following assert + #self.assertEqual(10,currentS.faces().size()) + + def testCombine(self): + s = Workplane(Plane.XY()) + objects1 = s.rect(2.0,2.0).extrude(0.5).faces('>Z').rect(1.0,1.0).extrude(0.5) + + objects1.combine() + + self.assertEqual(11, objects1.faces().size()) + + def testCombineSolidsInLoop(self): #duplicates a memory problem of some kind reported when combining lots of objects s = Workplane("XY").rect(0.5,0.5).extrude(5.0)