Upon inspection, this test is really overkill and also doesn't actually test what we want it to test.

You should instead just a function that instantiates an MLP with a single layer and makes an fprop Theano function out of it

```python
def build_mlp_fn(x0, y0, x1, y1, s0, s1, c, axes):
    mlp = MLP(layers=[WindowLayer('h0', window=(x0, y0, x1, y1)], 
              input_space=Conv2DSpace(shape=(s0, s1),
              num_channels=c, axes=axes)
    X = mlp.get_input_space().make_batch_theano()
    f = theano.function([X], mlp.fprop(X))
    return f

This returns a callable object, which you can then call on NumPy arrays to verify that you get what you expect. You should try a couple of different sizes of arrays/windows as well as axes.

The checks for exceptions are okay though.