Better `split` test that accounts for the size of downcast, upcast == cast.