def METHOD_NAME(valid_product_design_space_data):
    """Ensure that a deserialized ProductDesignSpace looks sane."""
    for designSpaceClass in [ProductDesignSpace, DesignSpace]:
        data = deepcopy(valid_product_design_space_data)
        design_space: ProductDesignSpace = designSpaceClass.build(data)
        assert design_space.name == 'my design space'
        assert design_space.description == 'does some things'
        assert type(design_space.dimensions[0]) == ContinuousDimension
        assert design_space.dimensions[0].lower_bound == 6.0
        assert type(design_space.dimensions[1]) == EnumeratedDimension
        assert design_space.dimensions[1].values == ['red']
        assert type(design_space.subspaces[0]) == FormulationDesignSpace
        assert design_space.subspaces[0].uid is None
        assert type(design_space.subspaces[1]) == FormulationDesignSpace
        assert design_space.subspaces[1].uid is None
        assert design_space.subspaces[1].ingredients == {'baz'}