Increasing test coverage and fixing bugs found while writing tests

Ah, sorry, you're right. 1-dimensional arrays work in ways that aren't always intuitive to me.

For example:

```python
In [27]: b
Out[27]: array([1, 2, 3])

In [28]: b.shape[0]
Out[28]: 3

In [29]: np.hstack([b, b])
Out[29]: array([1, 2, 3, 1, 2, 3])

In [30]: np.hstack([b, b]).shape[0]
Out[30]: 6

In [31]: np.vstack([b, b])
Out[31]: 
array([[1, 2, 3],
       [1, 2, 3]])

In [32]: np.vstack([b, b]).shape[0]
Out[32]: 2
```

Given that `shape[0]` returns the number of rows when it's a 2-dimensional array, it's weird that it returns the number of columns for a 1-dimensional array.