package com.insightfullogic.honest_profiler.framework.checker; import static org.junit.Assert.assertEquals; import com.insightfullogic.honest_profiler.core.aggregation.grouping.FrameGrouping; import com.insightfullogic.honest_profiler.core.aggregation.grouping.ThreadGrouping; import com.insightfullogic.honest_profiler.core.aggregation.result.straight.Entry; import com.insightfullogic.honest_profiler.core.aggregation.result.straight.Flat; /** * {@link CheckAdapter} for checking a {@link Flat} directly. */ public class FlatCheckAdapter implements CheckAdapter<String> { private Flat flat; public FlatCheckAdapter(Flat flat) { this.flat = flat; } @Override public ThreadGrouping getThreadGrouping() { return flat.getGrouping().getThreadGrouping(); } @Override public FrameGrouping getFrameGrouping() { return flat.getGrouping().getFrameGrouping(); } @Override public void assertSizeEquals(int expected) { assertEquals(msg("Size"), expected, flat.getData().size()); } @Override public void assertSelfCntEquals(String key, int expected) { assertEquals(msg(key + ": Slf #"), expected, getEntry(key).getSelfCnt()); } @Override public void assertTotalCntEquals(String key, int expected) { assertEquals(msg(key + ": Tot #"), expected, getEntry(key).getTotalCnt()); } @Override public void assertSelfTimeEquals(String key, long expected) { assertEquals(msg(key + ": Slf Time"), expected, getEntry(key).getSelfTime()); } @Override public void assertTotalTimeEquals(String key, long expected) { assertEquals(msg(key + ": Tot Time"), expected, getEntry(key).getTotalTime()); } @Override public void assertSelfCntPctEquals(String key, double expected) { assertEquals(msg(key + ": Slf # %"), expected, getEntry(key).getSelfCntPct(), .00001); } @Override public void assertTotalCntPctEquals(String key, double expected) { assertEquals(msg(key + ": Tot # %"), expected, getEntry(key).getTotalCntPct(), .00001); } @Override public void assertSelfTimePctEquals(String key, double expected) { assertEquals(msg(key + ": Slf Time %"), expected, getEntry(key).getSelfTimePct(), .00001); } @Override public void assertTotalTimePctEquals(String key, double expected) { assertEquals(msg(key + ": Tot Time %"), expected, getEntry(key).getTotalTimePct(), .00001); } private String msg(String value) { return value + " wrong (" + getThreadGrouping() + ", " + getFrameGrouping() + ")\n" + flat.toString(); } private Entry getEntry(String key) { return flat.getData().stream().filter(entry -> key.equals(entry.getKey())).findFirst() .get(); } }