Skip to content

Commit 2f3e2d9

Browse files
committed
added function contents
1 parent 8ab28f6 commit 2f3e2d9

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

diffpy/snmf/subroutines.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,16 @@ def construct_weight_matrix(components):
128128
2d array like
129129
The 2d array containing the weightings for each component for each signal.
130130
"""
131-
131+
number_of_components = len(components)
132+
number_of_signals = len(components[0].weights)
133+
if number_of_components == 0:
134+
raise ValueError(f"Number of components = {number_of_components}. Number of components must be >= 1")
135+
if number_of_signals == 0:
136+
raise ValueError(f"Number of signals = {number_of_signals}. Number_of_signals must be >= 1.")
137+
weights_matrix = np.zeros((number_of_components,number_of_signals))
138+
for i, component in enumerate(components):
139+
weights_matrix[i] = component.weights
140+
return weights_matrix
132141

133142
def initialize_arrays(number_of_components, number_of_moments, signal_length):
134143
"""Generates the initial guesses for the weight, stretching, and component matrices

diffpy/snmf/tests/test_subroutines.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,14 +209,16 @@ def test_construct_component_matrix(tccm):
209209

210210
tcwm = [
211211
([ComponentSignal([0,.25,.5,.75,1],20,0)]),
212-
([ComponentSignal([0,.25,.5,.75,1],0,0)]),
212+
# ([ComponentSignal([0,.25,.5,.75,1],0,0)]), # 0 signal length. Failure expected
213213
([ComponentSignal([0,.25,.5,.75,1],20,0),ComponentSignal([0,.25,.5,.75,1],20,1),ComponentSignal([0,.25,.5,.75,1],20,2)]),
214214
([ComponentSignal([0, .25, .5, .75, 1], 20, 0), ComponentSignal([0, .25, .5, .75, 1], 20, 1),
215215
ComponentSignal([0, .25, .5, .75, 1], 20, 2)]),
216216
([ComponentSignal([0, .25, .5, .75, 1], 20, 0), ComponentSignal([0, .25, .5, 2.75, 1], 20, 1),
217217
ComponentSignal([0, .25, .5, .75, 1], 20, 2)]),
218218
([ComponentSignal([.25], 20, 0), ComponentSignal([.25], 20, 1), ComponentSignal([.25], 20, 2)]),
219219
([ComponentSignal([0, .25, .5, .75, 1], 20, 0), ComponentSignal([0, .25, .5, .75, 1], 20, 1)]),
220+
#(ComponentSignal([], 20, 0)), # Expected to fail
221+
#([]), #Expected to fail
220222
]
221223
@pytest.mark.parametrize('tcwm',tcwm)
222224
def test_construct_weight_matrix(tcwm):

0 commit comments

Comments
 (0)