### Question:
MinWatermarkGauge implements Gauge<Long> { @Override public Long getValue() { return Math.min(watermarkGauge1.getValue(), watermarkGauge2.getValue()); } MinWatermarkGauge(WatermarkGauge watermarkGauge1, WatermarkGauge watermarkGauge2); @Override Long getValue();  }### Answer:
@Test public void testSetCurrentLowWatermark() { WatermarkGauge metric1 = new WatermarkGauge(); WatermarkGauge metric2 = new WatermarkGauge(); MinWatermarkGauge metric = new MinWatermarkGauge(metric1, metric2); Assert.assertEquals(Long.MIN_VALUE, metric.getValue().longValue()); metric1.setCurrentWatermark(1); Assert.assertEquals(Long.MIN_VALUE, metric.getValue().longValue()); metric2.setCurrentWatermark(2); Assert.assertEquals(1L, metric.getValue().longValue()); metric1.setCurrentWatermark(3); Assert.assertEquals(2L, metric.getValue().longValue()); }