### Question:
BillTrade implements SecuritizedProductTrade<Bill>, ResolvableTrade<ResolvedBillTrade>, ImmutableBean, Serializable { public static BillTrade.Builder builder() { return new BillTrade.Builder(); } BillTrade(
      TradeInfo info,
      Bill product,
      double quantity,
      double price); static BillTrade ofYield(TradeInfo info, Bill product, double quantity, double yield); static BillTrade ofPrice(TradeInfo info, Bill product, double quantity, double price); @Override ResolvedBillTrade resolve(ReferenceData refData); @Override BillTrade withInfo(PortfolioItemInfo info); @Override BillTrade withQuantity(double quantity); @Override BillTrade withPrice(double price); @Override PortfolioItemSummary summarize(); static BillTrade.Meta meta(); static BillTrade.Builder builder(); @Override BillTrade.Meta metaBean(); @Override TradeInfo getInfo(); @Override Bill getProduct(); @Override double getQuantity(); @Override double getPrice(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_price() { assertThatIllegalArgumentException() .isThrownBy(() -> BillTrade.builder() .info(TRADE_INFO) .product(PRODUCT) .quantity(QUANTITY) .build()); }
@Test public void test_settle_or_trade() { assertThatIllegalArgumentException() .isThrownBy(() -> BillTrade.builder() .info(TradeInfo.empty()) .product(PRODUCT) .quantity(QUANTITY) .price(PRICE) .build()); }