These are both kinda tautologies...`be_odd` implies it's an integer, so `be_an(Integer)` doesn't add value, and `be_odd.or be_even` is obviously always true of an array of integers.  Would be good to use something a bit more realistic...maybe `be_odd.and be > 0`?