Exemple #1
0
	def test_single_snap_middle_to_end(self):
		lines = [
			LineString([(100, 100), (0, 0), (0, 100)]),
			LineString([(0, -100), (0, -5)])
		]
		radius = 10
		result = geometry_snap.snap_linestrings(radius, lines)
		self.LinesEquivalent(result, [
			LineString([(100, 100), (0, 0), (0, 100)]),
			LineString([(0, -100), (0, -5), (0, 0)])
		])
Exemple #2
0
	def test_snap_to_non_point(self):
		lines = [
			LineString([(0, 0), (100, 100)]),
			LineString([(-5, 0), (0, -5)])
		]
		radius = 10
		result = geometry_snap.snap_linestrings(radius, lines)
		self.LinesEquivalent(result, [
			LineString([(-2.5, -2.5), (0, 0), (100, 100)]),
			LineString([(-5, 0), (0, -5)])
		])
Exemple #3
0
	def test_no_snap_when_intersecting(self):
		lines = [
			LineString([(0, 0), (100, 100)]),
			LineString([(100, 105), (0, -5)])
		]
		radius = 10
		result = geometry_snap.snap_linestrings(radius, lines)
		self.LinesEquivalent(result, [
			LineString([(0, 0), (100, 100)]),
			LineString([(100, 105), (0, -5)])
		])
Exemple #4
0
	def test_snap_both_ends(self):
		lines = [
			LineString([(0, 0), (100, 100)]),
			LineString([(100, 95), (5, 0)])
		]
		radius = 10
		result = geometry_snap.snap_linestrings(radius, lines)
		self.LinesEquivalent(result, [
			LineString([(5, 0), (0, 0), (100, 100), (100, 95)]),
			LineString([(100, 95), (5, 0)])
		])
Exemple #5
0
	def test_snap_prioritiezes_first_snap(self):
		l1 = LineString([(0, 0), (100, 100)])
		l2 = LineString([(0, -100), (0, -5)])
		lines1 = [
			l1,
			l2
		]
		lines2 = [
			l2,
			l1
		]
		radius = 10
		result1 = geometry_snap.snap_linestrings(radius, lines1)
		result2 = geometry_snap.snap_linestrings(radius, lines2)
		self.LinesEquivalent(result1, [
			LineString([(0,-5), (0, 0), (100, 100)]),
			LineString([(0, -100), (0, -5)])
		])
		self.LinesEquivalent(result2, [
			LineString([(0, -100), (0, -5), (0, 0)]),
			LineString([(0, 0), (100, 100)])
		])
Exemple #6
0
	def test_multi_snap_without_central_point(self):
		lines = [
			LineString([(0, 5), (0, 100)]),
			LineString([(0, -5), (0, -100)]),
			LineString([(5, 0), (100, 0)]),
			LineString([(-5, 0), (-100, 0)])
		]
		radius = 10
		result = geometry_snap.snap_linestrings(radius, lines)
		self.LinesEquivalent(result, [
			LineString([(5, 0), (0, 5), (0, 100)]),
			LineString([(-5, 0), (0, -5), (0, -100)]),
			LineString([(5, 0), (100, 0)]),
			LineString([(-5, 0), (-100, 0)])
		])
Exemple #7
0
	def test_no_lines(self):
		lines = []
		radius = 10
		result = geometry_snap.snap_linestrings(radius, lines)
		self.assertEqual(result, [])