diff --git a/inkex/turtle.py b/inkex/turtle.py
index 109467597347e5509cf0d6b41166eaf26f123e94..8913b17f8cb69fc033b4641f219b9fcea7fea13c 100644
--- a/inkex/turtle.py
+++ b/inkex/turtle.py
@@ -57,13 +57,19 @@ class PathTurtle:
)
def right(self, deg):
- """Rotate turtle right by deg degrees."""
- self.__heading -= deg
+ """Rotate turtle right by deg degrees.
- def left(self, deg):
- """Rotate turtle left by deg degrees."""
+ Changed in inkex 1.2: The turtle now rotates right (previously left) when calling this
+ method."""
self.__heading += deg
+ def left(self, deg):
+ """Rotate turtle left by deg degrees.
+
+ Changed in inkex 1.2: The turtle now rotates left (previously right) when calling this
+ method."""
+ self.__heading -= deg
+
def penup(self):
"""Enable non-drawing / moving mode"""
self.__draw = False
@@ -130,13 +136,13 @@ class PathTurtle:
return
self.fd(size)
turn = random.uniform(20, 40)
- self.lt(turn)
- self.rtree(size * random.uniform(0.5, 0.9), minimum, pt)
- self.rt(turn)
- turn = random.uniform(20, 40)
self.rt(turn)
self.rtree(size * random.uniform(0.5, 0.9), minimum, pt)
self.lt(turn)
+ turn = random.uniform(20, 40)
+ self.lt(turn)
+ self.rtree(size * random.uniform(0.5, 0.9), minimum, pt)
+ self.rt(turn)
if pt:
self.pu()
self.bk(size)
diff --git a/tests/data/refs/lindenmayer.out b/tests/data/refs/lindenmayer.out
index 8c2ec7d0849ccf7866ca81bc27b1bed05e455d6b..ca0de7e2f30fda738fe73d68dea2ff49f7502e29 100644
--- a/tests/data/refs/lindenmayer.out
+++ b/tests/data/refs/lindenmayer.out
@@ -14,7 +14,7 @@ dpi: 96
layout-disposition: bg-el-norepeat
layout-position-anchor: tl
-
+
diff --git a/tests/data/refs/lindenmayer__--rules__F__F-E__F__E-F__E__EE__--axiom__F-E-E__--order__3__--langle__120__--rangle__120.out b/tests/data/refs/lindenmayer__--rules__F__F-E__F__E-F__E__EE__--axiom__F-E-E__--order__3__--langle__120__--rangle__120.out
new file mode 100644
index 0000000000000000000000000000000000000000..8c2852ab0e643b802401fc8dd6bfd8ad18cd312e
--- /dev/null
+++ b/tests/data/refs/lindenmayer__--rules__F__F-E__F__E-F__E__EE__--axiom__F-E-E__--order__3__--langle__120__--rangle__120.out
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/tests/data/refs/lindenmayer__--rules__F__F__F--F__F__--axiom__F__--order__1__--langle__60__--rangle__60.out b/tests/data/refs/lindenmayer__--rules__F__F__F--F__F__--axiom__F__--order__1__--langle__60__--rangle__60.out
new file mode 100644
index 0000000000000000000000000000000000000000..d0526d382cf5ba9c4ff19904de49ec0bbb898114
--- /dev/null
+++ b/tests/data/refs/lindenmayer__--rules__F__F__F--F__F__--axiom__F__--order__1__--langle__60__--rangle__60.out
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/tests/test_lindenmayer.py b/tests/test_lindenmayer.py
index 7ae54a37daf9f2ccd3f579f8c2406c43c5b34af5..2c71b3b8fc230ffb220cde2190106de09d57012c 100644
--- a/tests/test_lindenmayer.py
+++ b/tests/test_lindenmayer.py
@@ -1,9 +1,22 @@
# coding=utf-8
from lindenmayer import Lindenmayer
from inkex.tester import ComparisonMixin, TestCase
-from inkex.tester.filters import CompareOrderIndependentStyle
+from inkex.tester.filters import CompareOrderIndependentStyle, CompareWithPathSpace
class LSystemBasicTest(ComparisonMixin, TestCase):
effect_class = Lindenmayer
- compare_filters = [CompareOrderIndependentStyle()]
+ compare_filters = [CompareOrderIndependentStyle(), CompareWithPathSpace()]
+ comparisons = [
+ (),
+ # left-looking Koch snowflake (one iteration)
+ ("--rules=F=F+F--F+F", "--axiom=F", "--order=1", "--langle=60", "--rangle=60"),
+ # test multiple rules: right pointing Sierpinski triangle
+ (
+ "--rules=F=F-E+F+E-F;E=EE",
+ "--axiom=F-E-E",
+ "--order=3",
+ "--langle=120",
+ "--rangle=120",
+ ),
+ ]