public virtual void test_metadata_fixed()
        {
            LocalDate nodeDate = VAL_DATE.plusMonths(1);
            ThreeLegBasisSwapCurveNode node     = ThreeLegBasisSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD, LABEL).withDate(CurveNodeDate.of(nodeDate));
            DatedParameterMetadata     metadata = node.metadata(VAL_DATE, REF_DATA);

            assertEquals(metadata.Date, nodeDate);
            assertEquals(metadata.Label, node.Label);
        }
        public virtual void test_metadata_end()
        {
            ThreeLegBasisSwapCurveNode node = ThreeLegBasisSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD);
            LocalDate         valuationDate = LocalDate.of(2015, 1, 22);
            ParameterMetadata metadata      = node.metadata(valuationDate, REF_DATA);

            assertEquals(((TenorDateParameterMetadata)metadata).Date, LocalDate.of(2025, 1, 27));
            assertEquals(((TenorDateParameterMetadata)metadata).Tenor, Tenor.TENOR_10Y);
        }
        public virtual void test_metadata_last_fixing()
        {
            ThreeLegBasisSwapCurveNode node = ThreeLegBasisSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD, LABEL).withDate(CurveNodeDate.LAST_FIXING);
            LocalDate valuationDate         = LocalDate.of(2015, 1, 22);
            LocalDate fixingExpected        = LocalDate.of(2024, 7, 24);
            DatedParameterMetadata metadata = node.metadata(valuationDate, REF_DATA);

            assertEquals(metadata.Date, fixingExpected);
            assertEquals(metadata.Label, node.Label);
        }