Skip to content

Commit a06818f

Browse files
authored
Merge pull request #2017 from sampsonbryce/master
Fixed extends not working if you have a premade list for custom.
2 parents d5537f6 + 85b48f8 commit a06818f

File tree

4 files changed

+51
-14
lines changed

4 files changed

+51
-14
lines changed

Packages/vcs/vcs/VCS_validation_functions.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2007,7 +2007,7 @@ def add_level_ext_2(self, ext_value):
20072007
if isinstance(self.levels[0], list): # remove from tuple of lists
20082008
if self.levels[-1][1] > 9.e19:
20092009
self.levels.pop(-1)
2010-
if isinstance(self.levels, tuple): # remove from list
2010+
if isinstance(self.levels, (tuple, list)): # remove from list
20112011
ret_tup = []
20122012
for i in range(len(self.levels) - 1):
20132013
ret_tup.insert(i + 1, self.levels[i])
@@ -2021,15 +2021,16 @@ def add_level_ext_2(self, ext_value):
20212021
return self.levels
20222022

20232023
# We may need to add extnsion
2024-
if isinstance(self.levels, tuple):
2025-
self.levels = list(self.levels)
2026-
if isinstance(self.levels[-1], list): # add to tuple of lists
2027-
if self.levels[-1][1] < 9.e19:
2028-
self.levels.append([self.levels[-1][1], 1e20])
2029-
else:
2030-
if self.levels[-1] < 9.e19:
2031-
self.levels.append(1.e20)
2032-
return self.levels
2024+
if isinstance(self.levels, (list, tuple)):
2025+
if isinstance(self.levels, tuple):
2026+
self.levels = list(self.levels)
2027+
if isinstance(self.levels[-1], list): # add to tuple of lists
2028+
if self.levels[-1][1] < 9.e19:
2029+
self.levels.append([self.levels[-1][1], 1e20])
2030+
else:
2031+
if self.levels[-1] < 9.e19:
2032+
self.levels.append(1.e20)
2033+
return self.levels
20332034

20342035

20352036
def _getext_1(self):

Packages/vcs/vcs/projection.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,12 @@ def list(self):
327327
print 'name =', self.name
328328
print 'type =', self.type
329329
# print 'parameters =',self.parameters
330+
331+
for att in self.attributes:
332+
print att, '=', getattr(self, att)
333+
334+
@property
335+
def attributes(self):
330336
p = []
331337
if self._type in [3, 4]:
332338
p.append('smajor')
@@ -455,8 +461,7 @@ def list(self):
455461
p.append('centerlatitude')
456462
p.append('falseeasting')
457463
p.append('falsenorthing')
458-
for att in p:
459-
print att, '=', getattr(self, att)
464+
return p
460465

461466
##########################################################################
462467
# #

testing/vcs/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ foreach(lat_0 45 90)
3030
${lat_0}
3131
)
3232
endforeach()
33-
34-
33+
cdat_add_test(test_vcs_extends
34+
"${PYTHON_EXECUTABLE}"
35+
${cdat_SOURCE_DIR}/testing/vcs/test_vcs_extends.py
36+
)
3537
cdat_add_test(test_vcs_create_get
3638
"${PYTHON_EXECUTABLE}"
3739
${cdat_SOURCE_DIR}/testing/vcs/test_vcs_create_get.py

testing/vcs/test_vcs_extends.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import vcs
2+
import numpy
3+
4+
box = vcs.createboxfill()
5+
6+
box.ext_1 = True
7+
assert numpy.allclose(box.levels, [1e20] * 2)
8+
9+
box.ext_2 = True
10+
assert numpy.allclose(box.levels, [1e20] * 2)
11+
12+
box.levels = [1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
13+
assert box.ext_1 == False
14+
assert box.ext_1 == False
15+
16+
box.ext_1 = True
17+
assert box.levels[0] < -9e19
18+
19+
box.ext_2 = True
20+
assert box.levels[-1] > 9e19
21+
22+
box.ext_1 = False
23+
assert box.levels[0] > -9e19
24+
25+
box.ext_2 = False
26+
assert box.levels[-1] < 9e19
27+
28+
29+

0 commit comments

Comments
 (0)