예제 #1
0
 def test_default_variable_mismatches_arrangement(self):
     with pytest.raises(pnl.FunctionError) as error_text:
         pnl.Rearrange(default_variable=[[0], [0]], arrangement=[(1, 2), 0])
     error_msg_a = "'arrangement' arg for Rearrange"
     error_msg_b = "is out of bounds for its 'default_variable' arg (max index = 1)."
     assert error_msg_a in str(error_text.value)
     assert error_msg_b in str(error_text.value)
예제 #2
0
 def test_arrangement_has_non_numeric_index(self):
     with pytest.raises(pnl.FunctionError) as error_text:
         pnl.Rearrange(default_variable=[[0], [0], [0]],
                       arrangement=[(1, 2), 'a'])
     error_msg_a = "Index specified in 'arrangement' arg"
     error_msg_b = "('a') is not an int."
     assert error_msg_a in str(error_text.value)
     assert error_msg_b in str(error_text.value)
예제 #3
0
 def test_default_variable_has_non_numeric_index(self):
     # with pytest.raises(pnl.FunctionError) as error_text:
     with pytest.raises(pnl.FunctionError) as error_text:
         pnl.Rearrange(default_variable=[[0], ['a']],
                       arrangement=[(1, 2), 0])
     # error_msg = "All elements of 'default_variable' for Rearrange must be scalar values."
     error_msg = "must be scalar values"
     assert error_msg in str(error_text.value)
예제 #4
0
 def test_arrangement_has_out_of_bounds_index(self):
     with pytest.raises(pnl.FunctionError) as error_text:
         pnl.Rearrange(default_variable=[0, 0], arrangement=[(1, 2), 0])
     error_msg = "'default_variable' for Rearrange must be at least 2d."
     assert error_msg in str(error_text.value)
예제 #5
0
 def test_with_default_variable(self):
     R_function = pnl.Rearrange(default_variable=[[0], [0], [0]],
                                arrangement=[(1, 2), 0])
     result = R_function.execute([[0, 0], [1, 1], [2, 2]])
     for exp, act in zip(result, [[1., 1., 2., 2.], [0., 0.]]):
         assert np.allclose(exp, act)