### Question:
ResolvedFxSingle implements ResolvedProduct, ImmutableBean, Serializable { public static ResolvedFxSingle.Meta meta() { return ResolvedFxSingle.Meta.INSTANCE; } private  ResolvedFxSingle(
      Payment baseCurrencyPayment,
      Payment counterCurrencyPayment); static ResolvedFxSingle of(Payment payment1, Payment payment2); static ResolvedFxSingle of(CurrencyAmount amount1, CurrencyAmount amount2, LocalDate valueDate); static ResolvedFxSingle of(CurrencyAmount amountCurrency1, FxRate fxRate, LocalDate paymentDate); CurrencyPair getCurrencyPair(); CurrencyAmount getReceiveCurrencyAmount(); LocalDate getPaymentDate(); ResolvedFxSingle inverse(); static ResolvedFxSingle.Meta meta(); @Override ResolvedFxSingle.Meta metaBean(); Payment getBaseCurrencyPayment(); Payment getCounterCurrencyPayment(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_builder_bothPositive() { assertThatIllegalArgumentException() .isThrownBy(() -> ResolvedFxSingle.meta().builder() .set(ResolvedFxSingle.meta().baseCurrencyPayment(), PAYMENT_GBP_P1000) .set(ResolvedFxSingle.meta().counterCurrencyPayment(), PAYMENT_USD_P1600) .build()); }
@Test public void test_builder_bothNegative() { assertThatIllegalArgumentException() .isThrownBy(() -> ResolvedFxSingle.meta().builder() .set(ResolvedFxSingle.meta().baseCurrencyPayment(), PAYMENT_GBP_M1000) .set(ResolvedFxSingle.meta().counterCurrencyPayment(), PAYMENT_USD_M1600) .build()); }
@Test public void test_builder_sameCurrency() { assertThatIllegalArgumentException() .isThrownBy(() -> ResolvedFxSingle.meta().builder() .set(ResolvedFxSingle.meta().baseCurrencyPayment(), PAYMENT_GBP_P1000) .set(ResolvedFxSingle.meta().counterCurrencyPayment(), PAYMENT_GBP_M1000) .build()); }