This is a smoke test of dex conversion, which checks to see that
checked cast expressions get converted reasonably.

This test compares emitted code against a known-good (via eyeballing)
version, so it is possible for this test to spuriously fail if other
aspects of conversion end up altering the output in innocuous ways.
