@Test
public void testUpdateMemoryUsage()
{
QueryStateMachine stateMachine = createQueryStateMachine();
stateMachine.updateMemoryUsage(5, 10, 1, 3);
assertEquals(stateMachine.getPeakUserMemoryInBytes(), 5);
assertEquals(stateMachine.getPeakTotalMemoryInBytes(), 10);
assertEquals(stateMachine.getPeakTaskUserMemory(), 1);
assertEquals(stateMachine.getPeakTaskTotalMemory(), 3);
stateMachine.updateMemoryUsage(0, 0, 2, 2);
assertEquals(stateMachine.getPeakUserMemoryInBytes(), 5);
assertEquals(stateMachine.getPeakTotalMemoryInBytes(), 10);
assertEquals(stateMachine.getPeakTaskUserMemory(), 2);
assertEquals(stateMachine.getPeakTaskTotalMemory(), 3);
stateMachine.updateMemoryUsage(1, 1, 1, 5);
assertEquals(stateMachine.getPeakUserMemoryInBytes(), 6);
assertEquals(stateMachine.getPeakTotalMemoryInBytes(), 11);
assertEquals(stateMachine.getPeakTaskUserMemory(), 2);
assertEquals(stateMachine.getPeakTaskTotalMemory(), 5);
stateMachine.updateMemoryUsage(3, 3, 5, 2);
assertEquals(stateMachine.getPeakUserMemoryInBytes(), 9);
assertEquals(stateMachine.getPeakTotalMemoryInBytes(), 14);
assertEquals(stateMachine.getPeakTaskUserMemory(), 5);
assertEquals(stateMachine.getPeakTaskTotalMemory(), 5);
}