add unit/integrted tests for dpc

should probably put in a `gx = np.asarray(gx)` to make sure the input is an array before you ask if for it's shape.

Note, this is as far as I got on the first pass.