use conditional table and avoid Array.Copy as pex doesn't seem to deal with it correctly