//-------------------------------------------------------------------------
        public virtual void test_withInfo()
        {
            DefaultSurfaceMetadata @base = DefaultSurfaceMetadata.of(SURFACE_NAME);

            assertThat(@base.findInfo(SurfaceInfoType.DAY_COUNT).Present).False;
            DefaultSurfaceMetadata test = @base.withInfo(SurfaceInfoType.DAY_COUNT, ACT_360);

            assertThat(@base.findInfo(SurfaceInfoType.DAY_COUNT).Present).False;
            assertThat(test.findInfo(SurfaceInfoType.DAY_COUNT).Present).True;
        }
        public virtual void test_builder2()
        {
            DefaultSurfaceMetadata test = DefaultSurfaceMetadata.builder().surfaceName(SURFACE_NAME).xValueType(ValueType.YEAR_FRACTION).yValueType(ValueType.DISCOUNT_FACTOR).zValueType(ValueType.ZERO_RATE).dayCount(ACT_365F).addInfo(SurfaceInfoType.DAY_COUNT, null).addInfo(DESCRIPTION, "Hello").parameterMetadata(ImmutableList.of(ParameterMetadata.empty())).build();

            assertThat(test.SurfaceName).isEqualTo(SURFACE_NAME);
            assertThat(test.XValueType).isEqualTo(ValueType.YEAR_FRACTION);
            assertThat(test.YValueType).isEqualTo(ValueType.DISCOUNT_FACTOR);
            assertThat(test.ZValueType).isEqualTo(ValueType.ZERO_RATE);
            assertThrowsIllegalArg(() => test.getInfo(SurfaceInfoType.DAY_COUNT));
            assertThat(test.findInfo(SurfaceInfoType.DAY_COUNT)).Empty;
            assertThat(test.getInfo(DESCRIPTION)).isEqualTo("Hello");
            assertThat(test.findInfo(DESCRIPTION)).isEqualTo(("Hello"));
            assertThat(test.findInfo(SurfaceInfoType.of("Rubbish"))).isEqualTo(null);
            assertThat(test.ParameterMetadata.Present).True;
            assertThat(test.ParameterMetadata.get()).containsExactly(ParameterMetadata.empty());
        }