def test_periodic_and_combos(self):
        assert_equal((self.pvolA & self.pvolB),
                     volume.PeriodicCVDefinedVolume(op_id, 50, 75))
        assert_equal((self.pvolA & self.pvolB)(60), True)
        assert_equal((self.pvolA & self.pvolB)(80), False)
        assert_equal((self.pvolB & self.pvolC), volume.EmptyVolume())
        assert_equal((self.pvolC & self.pvolB), volume.EmptyVolume())
        assert_is((self.pvolA & self.pvolA), self.pvolA)
        assert_equal((self.pvolA & self.pvolA_), volume.EmptyVolume())
        assert_equal((self.pvolE & self.pvolD), self.pvolD)
        # go to special case for cyclic permutation
        assert_equal((self.pvolB & self.pvolD), self.pvolB)
        # go to special case
        assert_equal((self.pvolE & self.pvolA_),
                     volume.UnionVolume(
                         volume.PeriodicCVDefinedVolume(op_id, -150,-100),
                         volume.PeriodicCVDefinedVolume(op_id, 75, 150)
                     )
                    )
        # go to super if needed
        assert_equal(type(self.pvolA & volA), volume.IntersectionVolume)