@Test
    public void preludeShapesAreAlwaysBoxed() {
        Model model = Model.assembler().assemble().unwrap();

        assertThat(model.expectShape(ShapeId.from("smithy.api#Boolean")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#Byte")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#Short")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#Integer")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#Long")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#Float")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#Double")).hasTrait(BoxTrait.ID), is(true));
        assertThat(model.expectShape(ShapeId.from("smithy.api#PrimitiveBoolean")).hasTrait(BoxTrait.ID), is(false));
    }
This test ensures that the prelude is valid.

<p>Under normal circumstances, the prelude is not validated using the
{@link TraitValueValidator} when validating a model. This cuts down on
how much work this expensive validator needs to do. However, we still need
to make sure that changes made to the prelude itself is valid. That's the
job of this test. It sets a special property in the metadata of the model
to turn on prelude validation.
smithy-model/src/test/java/software/amazon/smithy/model/loader/PreludeTest.java