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)
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)
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)
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)
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)