/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.flink.metrics; import org.junit.Test; import static org.junit.Assert.assertEquals; public class MeterViewTest { @Test public void testGetCount() { Counter c = new SimpleCounter(); c.inc(5); Meter m = new MeterView(c, 60); assertEquals(5, m.getCount()); } @Test public void testMarkEvent() { Counter c = new SimpleCounter(); Meter m = new MeterView(c, 60); assertEquals(0, m.getCount()); m.markEvent(); assertEquals(1, m.getCount()); m.markEvent(2); assertEquals(3, m.getCount()); } @Test public void testGetRate() { Counter c = new SimpleCounter(); MeterView m = new MeterView(c, 60); // values = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for (int x = 0; x < 12; x++) { m.markEvent(10); m.update(); } // values = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120] assertEquals(2.0, m.getRate(), 0.1); // 120 - 0 / 60 for (int x = 0; x < 12; x++) { m.markEvent(10); m.update(); } // values = [130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 120] assertEquals(2.0, m.getRate(), 0.1); // 240 - 120 / 60 for (int x = 0; x < 6; x++) { m.markEvent(20); m.update(); } // values = [280, 300, 320, 340, 360, 180, 190, 200, 210, 220, 230, 240, 260] assertEquals(3.0, m.getRate(), 0.1); // 360 - 180 / 60 for (int x = 0; x < 6; x++) { m.markEvent(20); m.update(); } // values = [280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 240, 260] assertEquals(4.0, m.getRate(), 0.1); // 480 - 240 / 60 for (int x = 0; x < 6; x++) { m.update(); } // values = [480, 480, 480, 480, 360, 380, 400, 420, 440, 460, 480, 480, 480] assertEquals(2.0, m.getRate(), 0.1); // 480 - 360 / 60 for (int x = 0; x < 6; x++) { m.update(); } // values = [480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480] assertEquals(0.0, m.getRate(), 0.1); // 480 - 480 / 60 } }