123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- """
- Name: v.clip test
- Purpose: Tests v.clip input parsing.
- Uses NC Basic data set.
- Author: Luca Delucchi
- Copyright: (C) 2017 by Luca Delucchi and the GRASS Development Team
- Licence: This program is free software under the GNU General Public
- License (>=v2). Read the file COPYING that comes with GRASS
- for details.
- """
- import os
- from grass.gunittest.case import TestCase
- from grass.gunittest.main import test
- class TestClipling(TestCase):
- inpclip = "zipcodes"
- inpoint = "hospitals"
- inlines = "roadsmajor"
- inpoly = "geology"
- outreg = "hospreg"
- outclip = "hospzip"
- outline = "roadsgarner"
- outpoly = "geogarner"
- outdiss = "geodiss"
- garner = "garner"
- @classmethod
- def setUpClass(cls):
- """Ensures expected computational region and generated data"""
- cls.use_temp_region()
- cls.runModule("g.region", vector=cls.inpclip)
- cls.runModule(
- "v.extract",
- input=cls.inpclip,
- output=cls.garner,
- where="ZIPNAME = '{na}'".format(na=cls.garner.upper()),
- )
- @classmethod
- def tearDownClass(cls):
- """Remove the temporary region and generated data"""
- cls.runModule(
- "g.remove",
- flags="f",
- type="vector",
- name=(
- cls.outclip,
- cls.outreg,
- cls.garner,
- cls.outline,
- cls.outpoly,
- cls.outdiss,
- ),
- )
- cls.del_temp_region()
- def test_points(self):
- """Test clipping points"""
- self.assertModule(
- "v.clip", input=self.inpoint, clip=self.inpclip, output=self.outclip
- )
- self.assertVectorExists(self.outclip)
- topology = dict(points=8)
- self.assertVectorFitsTopoInfo(self.outclip, topology)
- def test_region(self):
- """Test clipping point by region"""
- self.assertModule(
- "v.clip",
- input=self.inpoint,
- clip=self.inpclip,
- output=self.outreg,
- flags="r",
- )
- self.assertVectorExists(self.outreg)
- topology = dict(points=13)
- self.assertVectorFitsTopoInfo(self.outreg, topology)
- def test_lines(self):
- """Test clipping lines"""
- self.assertModule(
- "v.clip", input=self.inlines, clip=self.garner, output=self.outline
- )
- self.assertVectorExists(self.outline)
- topology = dict(lines=13, nodes=16)
- self.assertVectorFitsTopoInfo(self.outline, topology)
- def test_poly(self):
- """Test clipping polygon without dissolve"""
- self.assertModule(
- "v.clip", input=self.inpoly, clip=self.inpclip, output=self.outpoly
- )
- self.assertVectorExists(self.outpoly)
- topology = dict(areas=275)
- self.assertVectorFitsTopoInfo(self.outpoly, topology)
- def test_poly_diss(self):
- """Test clipping polygon without dissolve"""
- self.assertModule(
- "v.clip",
- input=self.inpoly,
- clip=self.inpclip,
- output=self.outdiss,
- flags="d",
- )
- self.assertVectorExists(self.outdiss)
- topology = dict(areas=276)
- self.assertVectorFitsTopoInfo(self.outdiss, topology)
- if __name__ == "__main__":
- test()
|