From f5a91a698057ef38f01f4af1cc14419d33aa4e9c Mon Sep 17 00:00:00 2001 From: adam-urbanczyk Date: Thu, 7 Jul 2016 20:43:30 +0200 Subject: [PATCH] Added simple test cases for string selector with logical ops Also fixed found bug (missing return statement) NB: the grammar is not finalized yet --- cadquery/selectors.py | 2 +- tests/TestCQSelectors.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/cadquery/selectors.py b/cadquery/selectors.py index 1cd66f3e..23196bbe 100644 --- a/cadquery/selectors.py +++ b/cadquery/selectors.py @@ -641,7 +641,7 @@ def _makeExpressionGrammar(atom): def delta_callback(res): items = res.asList()[0][::2] - reduce(SubtractSelector,items) + return reduce(SubtractSelector,items) def not_callback(res): right = res.asList()[0][1] diff --git a/tests/TestCQSelectors.py b/tests/TestCQSelectors.py index fdb20cf6..19ed26a1 100644 --- a/tests/TestCQSelectors.py +++ b/tests/TestCQSelectors.py @@ -354,6 +354,16 @@ class TestCQSelectors(BaseTest): self.assertEqual(2, len(fl)) el = c.edges(S("|X") + S("|Y")).vals() self.assertEqual(8, len(el)) + + # test using extended string syntax + fl = c.faces(">Z | X & >Y").vals() + self.assertEqual(2, len(v)) def testSubtractSelector(self): c = CQ(makeUnitCube()) @@ -366,6 +376,10 @@ class TestCQSelectors(BaseTest): # test the subtract operator fl = c.faces(S("#Z") - S(">X")).vals() self.assertEqual(3, len(fl)) + + # test using extended string syntax + fl = c.faces("#Z ^ >X").vals() + self.assertEqual(3, len(fl)) def testInverseSelector(self): c = CQ(makeUnitCube()) @@ -382,6 +396,12 @@ class TestCQSelectors(BaseTest): self.assertEqual(5, len(fl)) el = c.faces('>Z').edges(-S('>X')).vals() self.assertEqual(3, len(el)) + + # test using extended string syntax + fl = c.faces('~>Z').vals() + self.assertEqual(5, len(fl)) + el = c.faces('>Z').edges('~>X').vals() + self.assertEqual(3, len(el)) def testFaceCount(self): c = CQ(makeUnitCube())