@Override
    public boolean canPass(Node node, int acquireCount) {
        return canPass(node, acquireCount, false);
    }
@Test
    public void testWarmUp() throws InterruptedException {
        try (MockedStatic<TimeUtil> mocked = super.mockTimeUtil()) {
            WarmUpController warmupController = new WarmUpController(10, 10, 3);

            setCurrentMillis(mocked, System.currentTimeMillis());

            Node node = mock(Node.class);

            when(node.passQps()).thenReturn(8d);
            when(node.previousPassQps()).thenReturn(1d);

            assertFalse(warmupController.canPass(node, 1));

            when(node.passQps()).thenReturn(1d);
            when(node.previousPassQps()).thenReturn(1d);

            assertTrue(warmupController.canPass(node, 1));

            when(node.previousPassQps()).thenReturn(10d);

            for (int i = 0; i < 100; i++) {
                sleep(mocked, 100);
                warmupController.canPass(node, 1);
            }
            when(node.passQps()).thenReturn(8d);
            assertTrue(warmupController.canPass(node, 1));

            when(node.passQps()).thenReturn(10d);
            assertFalse(warmupController.canPass(node, 1));
        }
    }