Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update custom marker as scale_ctm expects floats #782

Merged
merged 4 commits into from
Apr 22, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions enable/markers.py
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ class CustomMarker(AbstractMarker):
def _add_to_path(self, path, size):
if self.scale_path:
path.save_ctm()
path.scale_ctm(size, size)
path.scale_ctm(float(size), float(size))
path.add_path(path)
if self.scale_path:
path.restore_ctm()
Expand All @@ -435,7 +435,7 @@ def get_compiled_path(self, size):
"""
if self.scale_path:
newpath = CompiledPath()
newpath.scale_ctm(size, size)
newpath.scale_ctm(float(size), float(size))
newpath.add_path(self.path)
return newpath
else:
Expand Down
52 changes: 52 additions & 0 deletions enable/tests/test_markers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# (C) Copyright 2005-2021 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
import unittest

import numpy as np

from enable.compiled_path import CompiledPath
from enable.kiva_graphics_context import GraphicsContext
from enable.markers import CustomMarker
from enable.tests._testing import skip_if_not_qt
Comment on lines +14 to +17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not an actionable comment - i was wondering if the enable testsuite should always import from enable.api instead of importing from the specific modules. Note that this is a more general question for ETS/package development.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I notice some of the test files do but others don't. I think it probably makes sense to use api everywhere in tests



@skip_if_not_qt
class TestCustomMarker(unittest.TestCase):

# regression test for enthought/chaco#232
def test_add_to_path(self):
path = CompiledPath()
path.begin_path()
path.move_to(-5, -5)
path.line_to(-5, 5)
path.line_to(5, 5)
path.line_to(5, -5)
path.line_to(-5, -5)

marker = CustomMarker(path=path)

gc = GraphicsContext((50, 50))
# should not fail
marker.add_to_path(gc.get_empty_path(), np.int64(0))

# regression test for enthought/chaco#232
def test_get_compiled_path(self):
path = CompiledPath()
path.begin_path()
path.move_to(-5, -5)
path.line_to(-5, 5)
path.line_to(5, 5)
path.line_to(5, -5)
path.line_to(-5, -5)

marker = CustomMarker(path=path)

# should not fail
marker.get_compiled_path(np.int64(0))