fix path hash unit test
parent
d97519ffa3
commit
b35488efb0
|
@ -1,7 +1,7 @@
|
|||
# External dependencies
|
||||
from __future__ import division, absolute_import, print_function
|
||||
import os
|
||||
import sys
|
||||
from sys import version_info
|
||||
import unittest
|
||||
from math import sqrt, pi
|
||||
from operator import itemgetter
|
||||
|
@ -719,59 +719,58 @@ class ArcTest(unittest.TestCase):
|
|||
|
||||
class TestPath(unittest.TestCase):
|
||||
|
||||
# def test_hash(self):
|
||||
# line1 = Line(600.5 + 350.5j, 650.5 + 325.5j)
|
||||
# arc1 = Arc(650 + 325j, 25 + 25j, -30, 0, 1, 700 + 300j)
|
||||
# arc2 = Arc(650 + 325j, 30 + 25j, -30, 0, 0, 700 + 300j)
|
||||
# cub1 = CubicBezier(650 + 325j, 25 + 25j, -30, 700 + 300j)
|
||||
# cub2 = CubicBezier(700 + 300j, 800 + 400j, 750 + 200j, 600 + 100j)
|
||||
# quad3 = QuadraticBezier(600 + 100j, 600, 600 + 300j)
|
||||
# linez = Line(600 + 300j, 600 + 350j)
|
||||
#
|
||||
# bezpath = Path(line1, cub1, cub2, quad3)
|
||||
# bezpathz = Path(line1, cub1, cub2, quad3, linez)
|
||||
# path = Path(line1, arc1, cub2, quad3)
|
||||
# pathz = Path(line1, arc1, cub2, quad3, linez)
|
||||
# lpath = Path(linez)
|
||||
# qpath = Path(quad3)
|
||||
# cpath = Path(cub1)
|
||||
# apath = Path(arc1, arc2)
|
||||
#
|
||||
# test_curves = [bezpath, bezpathz, path, pathz, lpath, qpath, cpath,
|
||||
# apath, line1, arc1, arc2, cub1, cub2, quad3, linez]
|
||||
#
|
||||
# # this is necessary due to changes to the builtin `hash` function
|
||||
# python_version = sys.version_info.major + 0.1*sys.version_info.minor
|
||||
# user_hash_seed = os.environ.get("PYTHONHASHSEED", "")
|
||||
# os.environ["PYTHONHASHSEED"] = "314"
|
||||
# if 3.8 <= python_version:
|
||||
# expected_hashes = [
|
||||
# -6073024107272494569, -2519772625496438197, 8726412907710383506,
|
||||
# 2132930052750006195, 3112548573593977871, 991446120749438306,
|
||||
# -5589397644574569777, -4438808571483114580, -3125333407400456536,
|
||||
# -4418099728831808951, 702646573139378041, -6331016786776229094,
|
||||
# 5053050772929443013, 6102272282813527681, -5385294438006156225
|
||||
# ]
|
||||
# elif 3.2 <= python_version < 3.8:
|
||||
# expected_hashes = [
|
||||
# -5662973462929734898, 5166874115671195563, 5223434942701471389,
|
||||
# -7224979960884350294, -5178990533869800243, -4003140762934044601,
|
||||
# 8575549467429100514, -6692132994808317852, 1594848578230132678,
|
||||
# -6374833902132909499, 4188352014604112779, -5090374009174854814,
|
||||
# -7093907105533857815, 2036243740727202243, -8108488067585685407
|
||||
# ]
|
||||
# else:
|
||||
# expected_hashes = [
|
||||
# -5762846476463470127, -138736730317965290, -2005041722222729058,
|
||||
# 8448700906794235291, -5178990533869800243, -4003140762934044601,
|
||||
# 8575549467429100514, 5166859065265868968, 1373103287265872323,
|
||||
# -1022491904150314631, 4188352014604112779, -5090374009174854814,
|
||||
# -7093907105533857815, 2036243740727202243, -8108488067585685407
|
||||
# ]
|
||||
#
|
||||
# for c, h in zip(test_curves, expected_hashes):
|
||||
# self.assertTrue(hash(c) == h, msg="hash {} was expected for curve = {}".format(h, c))
|
||||
# os.environ["PYTHONHASHSEED"] = user_hash_seed # restore user's hash seed
|
||||
def test_hash(self):
|
||||
line1 = Line(600.5 + 350.5j, 650.5 + 325.5j)
|
||||
arc1 = Arc(650 + 325j, 25 + 25j, -30, 0, 1, 700 + 300j)
|
||||
arc2 = Arc(650 + 325j, 30 + 25j, -30, 0, 0, 700 + 300j)
|
||||
cub1 = CubicBezier(650 + 325j, 25 + 25j, -30, 700 + 300j)
|
||||
cub2 = CubicBezier(700 + 300j, 800 + 400j, 750 + 200j, 600 + 100j)
|
||||
quad3 = QuadraticBezier(600 + 100j, 600, 600 + 300j)
|
||||
linez = Line(600 + 300j, 600 + 350j)
|
||||
|
||||
bezpath = Path(line1, cub1, cub2, quad3)
|
||||
bezpathz = Path(line1, cub1, cub2, quad3, linez)
|
||||
path = Path(line1, arc1, cub2, quad3)
|
||||
pathz = Path(line1, arc1, cub2, quad3, linez)
|
||||
lpath = Path(linez)
|
||||
qpath = Path(quad3)
|
||||
cpath = Path(cub1)
|
||||
apath = Path(arc1, arc2)
|
||||
|
||||
test_curves = [bezpath, bezpathz, path, pathz, lpath, qpath, cpath,
|
||||
apath, line1, arc1, arc2, cub1, cub2, quad3, linez]
|
||||
|
||||
# this is necessary due to changes to the builtin `hash` function
|
||||
user_hash_seed = os.environ.get("PYTHONHASHSEED", "")
|
||||
os.environ["PYTHONHASHSEED"] = "314"
|
||||
if version_info.major >= 3 and version_info.minor >= 8:
|
||||
expected_hashes = [
|
||||
-6073024107272494569, -2519772625496438197, 8726412907710383506,
|
||||
2132930052750006195, 3112548573593977871, 991446120749438306,
|
||||
-5589397644574569777, -4438808571483114580, -3125333407400456536,
|
||||
-4418099728831808951, 702646573139378041, -6331016786776229094,
|
||||
5053050772929443013, 6102272282813527681, -5385294438006156225
|
||||
]
|
||||
elif version_info.major == 3 and 2 <= version_info.minor < 8:
|
||||
expected_hashes = [
|
||||
-5662973462929734898, 5166874115671195563, 5223434942701471389,
|
||||
-7224979960884350294, -5178990533869800243, -4003140762934044601,
|
||||
8575549467429100514, -6692132994808317852, 1594848578230132678,
|
||||
-6374833902132909499, 4188352014604112779, -5090374009174854814,
|
||||
-7093907105533857815, 2036243740727202243, -8108488067585685407
|
||||
]
|
||||
else:
|
||||
expected_hashes = [
|
||||
-5762846476463470127, -138736730317965290, -2005041722222729058,
|
||||
8448700906794235291, -5178990533869800243, -4003140762934044601,
|
||||
8575549467429100514, 5166859065265868968, 1373103287265872323,
|
||||
-1022491904150314631, 4188352014604112779, -5090374009174854814,
|
||||
-7093907105533857815, 2036243740727202243, -8108488067585685407
|
||||
]
|
||||
|
||||
for c, h in zip(test_curves, expected_hashes):
|
||||
self.assertTrue(hash(c) == h, msg="hash {} was expected for curve = {}".format(h, c))
|
||||
os.environ["PYTHONHASHSEED"] = user_hash_seed # restore user's hash seed
|
||||
|
||||
def test_circle(self):
|
||||
arc1 = Arc(0j, 100 + 100j, 0, 0, 0, 200 + 0j)
|
||||
|
|
Loading…
Reference in New Issue