Skip to content

Commit c6c8046

Browse files
committed
TL: fix on Jumper implementation + tests
1 parent f5db01a commit c6c8046

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

qmat/qdelta/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,10 @@ def genCoeffs(self, k=None, form="Z2N", dTau=False):
144144
gen = lambda k, copy=None: self.getSDelta(k)
145145
else:
146146
raise ValueError(f"form must be Z2N or N2N, not {form}")
147-
if isinstance(k, list):
147+
try:
148+
k = list(k)
148149
out = [np.array([gen(_k, copy=False) for _k in k])]
149-
else:
150+
except TypeError:
150151
out = [gen(k)]
151152
if dTau:
152153
out += [self.dTau]

tests/test_qdelta/test_min.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,25 @@ def testFlex(nNodes, nodeType, quadType):
124124
QDelta1 = gen.getQDelta(1)
125125
assert np.allclose(QDelta0, QDelta1), \
126126
"default QDelta is not equal to k=1"
127+
128+
129+
@pytest.mark.parametrize("quadType", ["GAUSS", "RADAU-RIGHT"])
130+
@pytest.mark.parametrize("nodeType", NODE_TYPES)
131+
@pytest.mark.parametrize("nNodes", [2, 3, 4])
132+
def testJumper(nNodes, nodeType, quadType):
133+
coll = Collocation(nNodes=nNodes, nodeType=nodeType, quadType=quadType)
134+
nodes, Q = coll.nodes, coll.Q
135+
k = np.arange(nNodes)+1
136+
137+
gen = module.Jumper(nodes=nodes)
138+
genFlex = module.MIN_SR_FLEX(coll=coll)
139+
QDeltas = gen.genCoeffs(k)
140+
QDeltasFlex = genFlex.genCoeffs(k)
141+
142+
assert np.allclose(QDeltas, QDeltasFlex/2)
143+
144+
gen2 = module.FlexJumper(nodes=nodes)
145+
QDeltas2 = gen2.genCoeffs(k)
146+
147+
assert np.allclose(QDeltas2[0], QDeltasFlex[0])
148+
assert np.allclose(QDeltas2[1:], QDeltas[:-1])

0 commit comments

Comments
 (0)