Skip to content

Commit

Permalink
Merge pull request #378 from jGaboardi/geometry_testing
Browse files Browse the repository at this point in the history
data type testing
  • Loading branch information
jGaboardi committed Jan 12, 2020
2 parents 688d1fa + 9022cb7 commit 5287446
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 24 deletions.
4 changes: 2 additions & 2 deletions docs/_modules/spaghetti/network.html
Original file line number Diff line number Diff line change
Expand Up @@ -2857,7 +2857,7 @@ <h1>Source code for spaghetti.network</h1><div class="highlight"><pre>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> </span>
<span class="sd"> in_data : {str, list, tuple, numpy.ndarray, libpysal.cg.Point, geopandas.GeoDataFrame}</span>
<span class="sd"> in_data : {str, list, tuple, libpysal.cg.Point, geopandas.GeoDataFrame}</span>
<span class="sd"> The input geographic data. Either (1) a path to a shapefile</span>
<span class="sd"> (str); (2) an iterable containing ``libpysal.cg.Point``</span>
<span class="sd"> objects; (3) a single ``libpysal.cg.Point``; or</span>
Expand Down Expand Up @@ -2923,7 +2923,7 @@ <h1>Source code for spaghetti.network</h1><div class="highlight"><pre>
<span class="n">from_shp</span> <span class="o">=</span> <span class="kc">False</span>
<span class="c1"># flag for points as libpysal.cg.Point objects</span>
<span class="n">is_libpysal_points</span> <span class="o">=</span> <span class="kc">False</span>
<span class="n">supported_iterables</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;list&quot;</span><span class="p">,</span> <span class="s2">&quot;tuple&quot;</span><span class="p">,</span> <span class="s2">&quot;numpy.ndarray&quot;</span><span class="p">]</span>
<span class="n">supported_iterables</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;list&quot;</span><span class="p">,</span> <span class="s2">&quot;tuple&quot;</span><span class="p">]</span>
<span class="c1"># type error message</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&#39;</span><span class="si">%s</span><span class="s2">&#39; not supported for point pattern instantiation.&quot;</span>

Expand Down
2 changes: 1 addition & 1 deletion docs/generated/spaghetti.PointPattern.html
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ <h1>spaghetti.PointPattern<a class="headerlink" href="#spaghetti-pointpattern" t
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><dl>
<dt><strong>in_data</strong><span class="classifier">{<a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="docutils literal notranslate"><span class="pre">list</span></code></a>, <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#tuple" title="(in Python v3.7)"><code class="docutils literal notranslate"><span class="pre">tuple</span></code></a>, <a class="reference external" href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v1.17)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">numpy.ndarray</span></code></a>, <a class="reference external" href="https://pysal.org/libpysal/generated/libpysal.cg.Point.html#libpysal.cg.Point" title="(in libpysal v4.2.1)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">libpysal.cg.Point</span></code></a>, <a class="reference external" href="https://geopandas.readthedocs.io/en/latest/reference/geopandas.GeoDataFrame.html#geopandas.GeoDataFrame" title="(in GeoPandas v0.6.1+33.gadd5fe9)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">geopandas.GeoDataFrame</span></code></a>}</span></dt><dd><p>The input geographic data. Either (1) a path to a shapefile
<dt><strong>in_data</strong><span class="classifier">{<a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="docutils literal notranslate"><span class="pre">list</span></code></a>, <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#tuple" title="(in Python v3.7)"><code class="docutils literal notranslate"><span class="pre">tuple</span></code></a>, <a class="reference external" href="https://pysal.org/libpysal/generated/libpysal.cg.Point.html#libpysal.cg.Point" title="(in libpysal v4.2.1)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">libpysal.cg.Point</span></code></a>, <a class="reference external" href="https://geopandas.readthedocs.io/en/latest/reference/geopandas.GeoDataFrame.html#geopandas.GeoDataFrame" title="(in GeoPandas v0.6.1+33.gadd5fe9)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">geopandas.GeoDataFrame</span></code></a>}</span></dt><dd><p>The input geographic data. Either (1) a path to a shapefile
(str); (2) an iterable containing <code class="docutils literal notranslate"><span class="pre">libpysal.cg.Point</span></code>
objects; (3) a single <code class="docutils literal notranslate"><span class="pre">libpysal.cg.Point</span></code>; or
(4) a <code class="docutils literal notranslate"><span class="pre">geopandas.GeoDataFrame</span></code>.</p>
Expand Down
2 changes: 1 addition & 1 deletion docs/searchindex.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions spaghetti/network.py
Original file line number Diff line number Diff line change
Expand Up @@ -2733,7 +2733,7 @@ class PointPattern:
Parameters
----------
in_data : {str, list, tuple, numpy.ndarray, libpysal.cg.Point, geopandas.GeoDataFrame}
in_data : {str, list, tuple, libpysal.cg.Point, geopandas.GeoDataFrame}
The input geographic data. Either (1) a path to a shapefile
(str); (2) an iterable containing ``libpysal.cg.Point``
objects; (3) a single ``libpysal.cg.Point``; or
Expand Down Expand Up @@ -2799,7 +2799,7 @@ def __init__(self, in_data=None, idvariable=None, attribute=False):
from_shp = False
# flag for points as libpysal.cg.Point objects
is_libpysal_points = False
supported_iterables = ["list", "tuple", "numpy.ndarray"]
supported_iterables = ["list", "tuple"]
# type error message
msg = "'%s' not supported for point pattern instantiation."

Expand Down
24 changes: 15 additions & 9 deletions spaghetti/tests/test_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,15 @@ def test_network_from_libpysal_chains(self):
known_components = self.ntw_from_shp.network_n_components
known_length = sum(self.ntw_from_shp.arc_lengths.values())
# network instantiated from libpysal.cg.Chain objects
self.ntw_from_chains = spaghetti.Network(in_data=self.chains)
self.assertEqual(self.ntw_from_chains.network_n_components, known_components)
self.assertAlmostEqual(
sum(self.ntw_from_chains.arc_lengths.values()), known_length, places=3
)
for dtype in (list, tuple, numpy.array):
ntw_data = dtype(self.chains)
self.ntw_from_chains = spaghetti.Network(in_data=ntw_data)
self.assertEqual(
self.ntw_from_chains.network_n_components, known_components
)
self.assertAlmostEqual(
sum(self.ntw_from_chains.arc_lengths.values()), known_length, places=3
)

def test_network_from_single_libpysal_chain(self):
# network instantiated from a single libpysal.cg.Chain
Expand Down Expand Up @@ -183,10 +187,12 @@ def test_pp_from_libpysal_points(self):
known_snapped = set(crimes.snapped_coordinates.values())
# points from pysal geometries
points = [cg.Point(crimes.points[i]["coordinates"]) for i in crimes.points]
self.ntw.snapobservations(points, "cg_crimes")
observed = self.ntw.pointpatterns["cg_crimes"]
observed_snapped = set(observed.snapped_coordinates.values())
self.assertEqual(observed_snapped, known_snapped)
for dtype in (list, tuple):
point_data = dtype(points)
self.ntw.snapobservations(point_data, "cg_crimes")
observed = self.ntw.pointpatterns["cg_crimes"]
observed_snapped = set(observed.snapped_coordinates.values())
self.assertEqual(observed_snapped, known_snapped)

def test_pp_from_single_libpysal_point(self):
# network instantiated from a single libpysal.cg.Chain
Expand Down
24 changes: 15 additions & 9 deletions spaghetti/tests/test_network_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,15 @@ def test_network_from_libpysal_chains(self):
known_components = self.ntw_from_shp.network_n_components
known_length = sum(self.ntw_from_shp.arc_lengths.values())
# network instantiated from libpysal.cg.Chain objects
self.ntw_from_chains = spaghetti.Network(in_data=self.chains)
self.assertEqual(self.ntw_from_chains.network_n_components, known_components)
self.assertAlmostEqual(
sum(self.ntw_from_chains.arc_lengths.values()), known_length, places=3
)
for dtype in (list, tuple, numpy.array):
ntw_data = dtype(self.chains)
self.ntw_from_chains = spaghetti.Network(in_data=ntw_data)
self.assertEqual(
self.ntw_from_chains.network_n_components, known_components
)
self.assertAlmostEqual(
sum(self.ntw_from_chains.arc_lengths.values()), known_length, places=3
)

def test_network_from_single_libpysal_chain(self):
# network instantiated from a single libpysal.cg.Chain
Expand Down Expand Up @@ -182,10 +186,12 @@ def test_pp_from_libpysal_points(self):
known_snapped = set(crimes.snapped_coordinates.values())
# points from pysal geometries
points = [cg.Point(crimes.points[i]["coordinates"]) for i in crimes.points]
self.ntw.snapobservations(points, "cg_crimes")
observed = self.ntw.pointpatterns["cg_crimes"]
observed_snapped = set(observed.snapped_coordinates.values())
self.assertEqual(observed_snapped, known_snapped)
for dtype in (list, tuple):
point_data = dtype(points)
self.ntw.snapobservations(point_data, "cg_crimes")
observed = self.ntw.pointpatterns["cg_crimes"]
observed_snapped = set(observed.snapped_coordinates.values())
self.assertEqual(observed_snapped, known_snapped)

def test_pp_from_single_libpysal_point(self):
# network instantiated from a single libpysal.cg.Chain
Expand Down

0 comments on commit 5287446

Please sign in to comment.