MCPcopy
hub / github.com/CadQuery/cadquery / testCenterNthSelector

Method testCenterNthSelector

tests/test_selectors.py:226–352  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

224 self.assertAlmostEqual(e.tangentAt(0).cross(vec).Length, 0.0)
225
226 def testCenterNthSelector(self):
227 sel = selectors.CenterNthSelector
228
229 nothing = Workplane()
230 self.assertEqual(nothing.solids().size(), 0)
231 with self.assertRaises(ValueError):
232 nothing.solids(sel(Vector(0, 0, 1), 0))
233
234 c = Workplane(makeUnitCube(centered=True))
235
236 bottom_face = c.faces(sel(Vector(0, 0, 1), 0))
237 self.assertEqual(bottom_face.size(), 1)
238 self.assertTupleAlmostEquals((0, 0, 0), bottom_face.val().Center().toTuple(), 3)
239
240 side_faces = c.faces(sel(Vector(0, 0, 1), 1))
241 self.assertEqual(side_faces.size(), 4)
242 for f in side_faces.vals():
243 self.assertAlmostEqual(0.5, f.Center().z)
244
245 top_face = c.faces(sel(Vector(0, 0, 1), 2))
246 self.assertEqual(top_face.size(), 1)
247 self.assertTupleAlmostEquals((0, 0, 1), top_face.val().Center().toTuple(), 3)
248
249 with self.assertRaises(IndexError):
250 c.faces(sel(Vector(0, 0, 1), 3))
251
252 left_face = c.faces(sel(Vector(1, 0, 0), 0))
253 self.assertEqual(left_face.size(), 1)
254 self.assertTupleAlmostEquals(
255 (-0.5, 0, 0.5), left_face.val().Center().toTuple(), 3
256 )
257
258 middle_faces = c.faces(sel(Vector(1, 0, 0), 1))
259 self.assertEqual(middle_faces.size(), 4)
260 for f in middle_faces.vals():
261 self.assertAlmostEqual(0, f.Center().x)
262
263 right_face = c.faces(sel(Vector(1, 0, 0), 2))
264 self.assertEqual(right_face.size(), 1)
265 self.assertTupleAlmostEquals(
266 (0.5, 0, 0.5), right_face.val().Center().toTuple(), 3
267 )
268
269 with self.assertRaises(IndexError):
270 c.faces(sel(Vector(1, 0, 0), 3))
271
272 # lower corner faces
273 self.assertEqual(c.faces(sel(Vector(1, 1, 1), 0)).size(), 3)
274 # upper corner faces
275 self.assertEqual(c.faces(sel(Vector(1, 1, 1), 1)).size(), 3)
276 with self.assertRaises(IndexError):
277 c.faces(sel(Vector(1, 1, 1), 2))
278
279 for idx, z_val in zip([0, 1, 2], [0, 0.5, 1]):
280 edges = c.edges(sel(Vector(0, 0, 1), idx))
281 self.assertEqual(edges.size(), 4)
282 for e in edges.vals():
283 self.assertAlmostEqual(z_val, e.Center().z)

Callers

nothing calls this directly

Calls 15

solidsMethod · 0.95
facesMethod · 0.95
edgesMethod · 0.95
verticesMethod · 0.95
makeUnitCubeFunction · 0.90
WorkplaneClass · 0.85
VectorClass · 0.85
isSameMethod · 0.80
extrudeMethod · 0.80
holeMethod · 0.80
workplaneMethod · 0.80

Tested by

no test coverage detected