Mercurial > hg > GlobalNeighbors
annotate tests/test_grid.py @ 4:8e130b7bfed9
remove unintended boilerplate
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Sat, 24 Jun 2017 14:48:55 -0700 |
| parents | 49aae0c0293b |
| children | 7e27e874655b |
| rev | line source |
|---|---|
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
2 |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
3 """ |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
4 test that we can grid a solution |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
5 """ |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
6 |
| 1 | 7 import os |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
8 import unittest |
| 1 | 9 from common import datafile |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
10 from globalneighbors.grid import LatLonGrid |
| 1 | 11 from globalneighbors.locations import locations |
| 12 from globalneighbors.read import read_city_list | |
| 13 | |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
14 |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
15 class TestGrid(unittest.TestCase): |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
16 """test gridding functionality""" |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
17 |
| 1 | 18 ### test functions |
| 19 | |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
20 def test_dimensions(self): |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
21 |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
22 # make a 2 degree grid |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
23 grid = LatLonGrid(90, 180) |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
24 assert grid.n == (90, 180) |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
25 assert grid.d == (2., 2.) |
| 1 | 26 assert len(grid.grid) == 90 |
| 27 for row in grid.grid: | |
| 28 assert len(row) == 180 | |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
29 |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
30 def test_insertion(self): |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
31 |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
32 coord = (-23., 122.) |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
33 grid = LatLonGrid(3, 4) |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
34 grid.add(1234, *coord) |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
35 i, j = grid.index(*coord) |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
36 assert i == 1 |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
37 assert j == 3 |
| 1 | 38 assert grid[(i,j)] == set([1234]) |
| 39 | |
| 40 def test_sample(self): | |
| 41 | |
| 42 samplefile = datafile('sample.tsv') | |
| 43 assert os.path.exists(samplefile) | |
| 44 city_locations = locations(read_city_list(samplefile)) | |
| 45 self.grid_locations(city_locations) | |
| 46 | |
| 47 ### generic (utility) functions | |
| 48 | |
| 49 def grid_locations(self, locations): | |
| 50 """grid locations + test created grid""" | |
| 51 | |
| 3 | 52 # create a grid |
| 1 | 53 grid = LatLonGrid(8, 8) |
| 3 | 54 |
| 55 # add the items to it | |
| 1 | 56 for geoid, (lat, lon) in locations.items(): |
| 57 grid.add(geoid, lat, lon) | |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
58 |
| 3 | 59 # iterate over the grid |
| 60 n_locations = 0 | |
| 61 for i in range(grid.n[0]): | |
| 62 for j in range(grid.n[1]): | |
| 63 n_locations += len(grid[(i,j)]) | |
| 64 assert n_locations == len(locations) | |
| 65 | |
|
0
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
66 if __name__ == '__main__': |
|
5dba84370182
initial commit; half-working prototype
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
67 unittest.main() |
