### Question:
Exchange implements Comparable<Exchange> { private Exchange(String name, boolean future, ZoneId zoneId, LocalTime[] marketTimes) { this.name = name; this.future = future; this.zoneId = zoneId; this.zoneOffset = LocalDateTime.now().atZone(zoneId).getOffset(); this.marketTimes = marketTimes; contracts = new HashMap<>(); for(ExchangeContract contract: ExchangeContract.getContracts(name)) { for(String commodity:contract.getCommodities()) { contracts.put(commodity, contract); } } } private  Exchange(String name, boolean future, ZoneId zoneId, LocalTime[] marketTimes); String name(); boolean isFuture(); boolean isSecurity(); ZoneId getZoneId(); ZoneOffset getZoneOffset(); LocalTime[] getMarketTimes(); String canonicalContract(String contract); ExchangeableTradingTimes detectTradingTimes(Exchangeable e, LocalDateTime time); ExchangeableTradingTimes getTradingTimes(Exchangeable instrument, LocalDate tradingDay); ExchangeableTradingTimes detectTradingTimes(String instrumentId, LocalDateTime time); ExchangeContract matchContract(String instrument); Collection<String> getContractNames(); @Override String toString(); static Exchange getInstance(String exchangeName); static final Exchange[] getInstances(); int compareTo(Exchange exchange); static final Exchange SSE; static final Exchange SZSE; static final Exchange HKEX; static final Exchange CFFEX; static final Exchange DCE; static final Exchange CZCE; static final Exchange INE; static final Exchange SHFE; static final String SSE_NAME; static final String SZSE_NAME; static final String CFFEX_NAME; static final String DCE_NAME; static final String SHFE_NAME; }### Answer:
@Test public void testZCE() { Exchangeable rm907 = Exchangeable.fromString("RM907"); assertTrue(rm907.exchange()==Exchange.CZCE); }