/** Copyright (C) SYSTAP, LLC DBA Blazegraph 2006-2016. All rights reserved. Contact: SYSTAP, LLC DBA Blazegraph 2501 Calvert ST NW #106 Washington, DC 20008 licenses@blazegraph.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * Created on Sep 16, 2010 */ package com.bigdata.bop.engine; import junit.framework.TestCase2; import com.bigdata.io.SerializerUtil; /** * Test suite for {@link BOpStats}. * * @author <a href="mailto:thompsonbry@users.sourceforge.net">Bryan Thompson</a> * @version $Id$ */ public class TestBOpStats extends TestCase2 { /** * */ public TestBOpStats() { } /** * @param name */ public TestBOpStats(String name) { super(name); } public void test_stats() { final BOpStats totals = new BOpStats(); final BOpStats stats = new BOpStats(); assertEquals("chunksIn", 0L, stats.chunksIn.get()); assertEquals("unitsIn", 0L, stats.unitsIn.get()); assertEquals("unitsOut", 0L, stats.unitsOut.get()); assertEquals("chunksOut", 0L, stats.chunksOut.get()); assertEquals("mutationCount", 0L, totals.mutationCount.get()); stats.chunksIn.increment(); // 1 stats.unitsIn.increment(); stats.unitsIn.increment(); //2 assertEquals("chunksIn", 1L, stats.chunksIn.get()); assertEquals("unitsIn", 2L, stats.unitsIn.get()); assertEquals("unitsOut", 0L, stats.unitsOut.get()); assertEquals("chunksOut", 0L, stats.chunksOut.get()); assertEquals("mutationCount", 0L, totals.mutationCount.get()); stats.unitsOut.increment(); stats.chunksOut.increment(); stats.unitsOut.increment(); stats.unitsOut.increment(); // 3 stats.chunksOut.increment(); // 2 assertEquals("chunksIn", 1L, stats.chunksIn.get()); assertEquals("unitsIn", 2L, stats.unitsIn.get()); assertEquals("unitsOut", 3L, stats.unitsOut.get()); assertEquals("chunksOut", 2L, stats.chunksOut.get()); assertEquals("mutationCount", 0L, totals.mutationCount.get()); totals.add(stats); assertEquals("chunksIn", 1L, totals.chunksIn.get()); assertEquals("unitsIn", 2L, totals.unitsIn.get()); assertEquals("unitsOut", 3L, totals.unitsOut.get()); assertEquals("chunksOut", 2L, totals.chunksOut.get()); assertEquals("mutationCount", 0L, totals.mutationCount.get()); stats.unitsIn.increment(); // 3 totals.add(stats); assertEquals("chunksIn", 2L, totals.chunksIn.get()); assertEquals("unitsIn", 5L, totals.unitsIn.get()); assertEquals("unitsOut", 6L, totals.unitsOut.get()); assertEquals("chunksOut", 4L, totals.chunksOut.get()); assertEquals("mutationCount", 0L, totals.mutationCount.get()); stats.mutationCount.increment(); totals.add(stats); assertEquals("chunksIn", 3L, totals.chunksIn.get()); assertEquals("unitsIn", 8L, totals.unitsIn.get()); assertEquals("unitsOut", 9L, totals.unitsOut.get()); assertEquals("chunksOut", 6L, totals.chunksOut.get()); assertEquals("mutationCount", 1L, totals.mutationCount.get()); } public void test_addToSelf() { final BOpStats stats = new BOpStats(); assertEquals("chunksIn", 0L, stats.chunksIn.get()); assertEquals("unitsIn", 0L, stats.unitsIn.get()); assertEquals("unitsOut", 0L, stats.unitsOut.get()); assertEquals("chunksOut", 0L, stats.chunksOut.get()); stats.chunksIn.increment(); stats.unitsIn.increment(); stats.unitsIn.increment(); assertEquals("chunksIn", 1L, stats.chunksIn.get()); assertEquals("unitsIn", 2L, stats.unitsIn.get()); assertEquals("unitsOut", 0L, stats.unitsOut.get()); assertEquals("chunksOut", 0L, stats.chunksOut.get()); // add to self. stats.add(stats); // verify no change. assertEquals("chunksIn", 1L, stats.chunksIn.get()); assertEquals("unitsIn", 2L, stats.unitsIn.get()); assertEquals("unitsOut", 0L, stats.unitsOut.get()); assertEquals("chunksOut", 0L, stats.chunksOut.get()); } public void test_serialization() { final BOpStats expected = new BOpStats(); expected.elapsed.set(System.currentTimeMillis()); expected.opCount.add(12); expected.chunksIn.add(1); expected.chunksOut.add(3); expected.unitsIn.add(4); expected.unitsOut.add(6); expected.typeErrors.add(8); expected.mutationCount.add(7); doSerializationTest(expected); } private static void doSerializationTest(final BOpStats expected) { final BOpStats actual = (BOpStats) SerializerUtil .deserialize(SerializerUtil.serialize(expected)); assertSameStats(expected, actual); } private static void assertSameStats(final BOpStats expected, final BOpStats actual) { assertEquals("elapsed", expected.elapsed.get(), actual.elapsed.get()); assertEquals("opCount", expected.opCount.get(), actual.opCount.get()); assertEquals("chunksIn", expected.chunksIn.get(), actual.chunksIn.get()); assertEquals("chunksOut", expected.chunksOut.get(), actual.chunksOut.get()); assertEquals("unitsIn", expected.unitsIn.get(), actual.unitsIn.get()); assertEquals("unitsOut", expected.unitsOut.get(), actual.unitsOut.get()); assertEquals("typeErrors", expected.typeErrors.get(), actual.typeErrors.get()); assertEquals("mutationCount", expected.mutationCount.get(), actual.mutationCount.get()); } }