In test_ship.py, both test_shipparams_get_element and test_shipparams_get_single construct a message array as:
message = np.array(['OK', 'OK', 'Error' 'OK'])
Python's implicit string concatenation turns 'Error' 'OK' into 'ErrorOK', producing a 3-element array instead of the intended 4-element array. Every other array in the test fixture has 4 elements.
The tests still pass because the corrupted input round-trips through ShipParams - assertions compare the same malformed value on both sides. As a result, index 2 asserts against 'ErrorOK' instead of the intended 'Error'.