|
Commons Math example source code file (FrequencyTest.java)
The Commons Math FrequencyTest.java source code/* * 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.commons.math.stat; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; import java.util.Iterator; import junit.framework.TestCase; import org.apache.commons.math.TestUtils; /** * Test cases for the {@link Frequency} class. * * @version $Revision: 902215 $ $Date: 2010-01-22 13:40:55 -0500 (Fri, 22 Jan 2010) $ */ public final class FrequencyTest extends TestCase { private long oneL = 1; private long twoL = 2; private long threeL = 3; private int oneI = 1; private int twoI = 2; private int threeI=3; private double tolerance = 10E-15; private Frequency f = null; public FrequencyTest(String name) { super(name); } @Override public void setUp() { f = new Frequency(); } /** test freq counts */ @SuppressWarnings("deprecation") public void testCounts() { assertEquals("total count",0,f.getSumFreq()); f.addValue(oneL); f.addValue(twoL); f.addValue(1); f.addValue(oneI); assertEquals("one frequency count",3,f.getCount(1)); assertEquals("two frequency count",1,f.getCount(2)); assertEquals("three frequency count",0,f.getCount(3)); assertEquals("total count",4,f.getSumFreq()); assertEquals("zero cumulative frequency", 0, f.getCumFreq(0)); assertEquals("one cumulative frequency", 3, f.getCumFreq(1)); assertEquals("two cumulative frequency", 4, f.getCumFreq(2)); assertEquals("Integer argument cum freq",4, f.getCumFreq(Integer.valueOf(2))); assertEquals("five cumulative frequency", 4, f.getCumFreq(5)); assertEquals("foo cumulative frequency", 0, f.getCumFreq("foo")); f.clear(); assertEquals("total count",0,f.getSumFreq()); // userguide examples ------------------------------------------------------------------- f.addValue("one"); f.addValue("One"); f.addValue("oNe"); f.addValue("Z"); assertEquals("one cumulative frequency", 1 , f.getCount("one")); assertEquals("Z cumulative pct", 0.5, f.getCumPct("Z"), tolerance); assertEquals("z cumulative pct", 1.0, f.getCumPct("z"), tolerance); assertEquals("Ot cumulative pct", 0.25, f.getCumPct("Ot"), tolerance); f.clear(); f = null; Frequency f = new Frequency(); f.addValue(1); f.addValue(Integer.valueOf(1)); f.addValue(Long.valueOf(1)); f.addValue(2); f.addValue(Integer.valueOf(-1)); assertEquals("1 count", 3, f.getCount(1)); assertEquals("1 count", 3, f.getCount(Integer.valueOf(1))); assertEquals("0 cum pct", 0.2, f.getCumPct(0), tolerance); assertEquals("1 pct", 0.6, f.getPct(Integer.valueOf(1)), tolerance); assertEquals("-2 cum pct", 0, f.getCumPct(-2), tolerance); assertEquals("10 cum pct", 1, f.getCumPct(10), tolerance); f = null; f = new Frequency(String.CASE_INSENSITIVE_ORDER); f.addValue("one"); f.addValue("One"); f.addValue("oNe"); f.addValue("Z"); assertEquals("one count", 3 , f.getCount("one")); assertEquals("Z cumulative pct -- case insensitive", 1 , f.getCumPct("Z"), tolerance); assertEquals("z cumulative pct -- case insensitive", 1 , f.getCumPct("z"), tolerance); f = null; f = new Frequency(); assertEquals(0L, f.getCount('a')); assertEquals(0L, f.getCumFreq('b')); TestUtils.assertEquals(Double.NaN, f.getPct('a'), 0.0); TestUtils.assertEquals(Double.NaN, f.getCumPct('b'), 0.0); f.addValue('a'); f.addValue('b'); f.addValue('c'); f.addValue('d'); assertEquals(1L, f.getCount('a')); assertEquals(2L, f.getCumFreq('b')); assertEquals(0.25, f.getPct('a'), 0.0); assertEquals(0.5, f.getCumPct('b'), 0.0); assertEquals(1.0, f.getCumPct('e'), 0.0); } /** test pcts */ @SuppressWarnings("deprecation") public void testPcts() { f.addValue(oneL); f.addValue(twoL); f.addValue(oneI); f.addValue(twoI); f.addValue(threeL); f.addValue(threeL); f.addValue(3); f.addValue(threeI); assertEquals("one pct",0.25,f.getPct(1),tolerance); assertEquals("two pct",0.25,f.getPct(Long.valueOf(2)),tolerance); assertEquals("three pct",0.5,f.getPct(threeL),tolerance); // MATH-329 assertEquals("three (Object) pct",0.5,f.getPct((Object) (Integer.valueOf(3))),tolerance); assertEquals("five pct",0,f.getPct(5),tolerance); assertEquals("foo pct",0,f.getPct("foo"),tolerance); assertEquals("one cum pct",0.25,f.getCumPct(1),tolerance); assertEquals("two cum pct",0.50,f.getCumPct(Long.valueOf(2)),tolerance); assertEquals("Integer argument",0.50,f.getCumPct(Integer.valueOf(2)),tolerance); assertEquals("three cum pct",1.0,f.getCumPct(threeL),tolerance); assertEquals("five cum pct",1.0,f.getCumPct(5),tolerance); assertEquals("zero cum pct",0.0,f.getCumPct(0),tolerance); assertEquals("foo cum pct",0,f.getCumPct("foo"),tolerance); } /** test adding incomparable values */ @SuppressWarnings("deprecation") public void testAdd() { char aChar = 'a'; char bChar = 'b'; String aString = "a"; f.addValue(aChar); f.addValue(bChar); try { f.addValue(aString); fail("Expecting IllegalArgumentException"); } catch (IllegalArgumentException ex) { // expected } try { f.addValue(2); fail("Expecting IllegalArgumentException"); } catch (IllegalArgumentException ex) { // expected } assertEquals("a pct",0.5,f.getPct(aChar),tolerance); assertEquals("b cum pct",1.0,f.getCumPct(bChar),tolerance); assertEquals("a string pct",0.0,f.getPct(aString),tolerance); assertEquals("a string cum pct",0.0,f.getCumPct(aString),tolerance); f = new Frequency(); f.addValue("One"); try { f.addValue(new Integer("One")); fail("Expecting IllegalArgumentException"); } catch (IllegalArgumentException ex) { // expected } } // Check what happens when non-Comparable objects are added @SuppressWarnings("deprecation") public void testAddNonComparable(){ try { f.addValue(new Object()); // This was previously OK fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException expected) { } f.clear(); f.addValue(1); try { f.addValue(new Object()); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException expected) { } } /** test empty table */ public void testEmptyTable() { assertEquals("freq sum, empty table", 0, f.getSumFreq()); assertEquals("count, empty table", 0, f.getCount(0)); assertEquals("count, empty table",0, f.getCount(Integer.valueOf(0))); assertEquals("cum freq, empty table", 0, f.getCumFreq(0)); assertEquals("cum freq, empty table", 0, f.getCumFreq("x")); assertTrue("pct, empty table", Double.isNaN(f.getPct(0))); assertTrue("pct, empty table", Double.isNaN(f.getPct(Integer.valueOf(0)))); assertTrue("cum pct, empty table", Double.isNaN(f.getCumPct(0))); assertTrue("cum pct, empty table", Double.isNaN(f.getCumPct(Integer.valueOf(0)))); } /** * Tests toString() */ public void testToString(){ f.addValue(oneL); f.addValue(twoL); f.addValue(oneI); f.addValue(twoI); String s = f.toString(); //System.out.println(s); assertNotNull(s); BufferedReader reader = new BufferedReader(new StringReader(s)); try { String line = reader.readLine(); // header line assertNotNull(line); line = reader.readLine(); // one's or two's line assertNotNull(line); line = reader.readLine(); // one's or two's line assertNotNull(line); line = reader.readLine(); // no more elements assertNull(line); } catch(IOException ex){ fail(ex.getMessage()); } } @SuppressWarnings("deprecation") public void testIntegerValues() { Comparable<?> obj1 = null; obj1 = Integer.valueOf(1); Integer int1 = Integer.valueOf(1); f.addValue(obj1); f.addValue(int1); f.addValue(2); f.addValue(Long.valueOf(2)); assertEquals("Integer 1 count", 2, f.getCount(1)); assertEquals("Integer 1 count", 2, f.getCount(Integer.valueOf(1))); assertEquals("Integer 1 count", 2, f.getCount(Long.valueOf(1))); assertEquals("Integer 1 cumPct", 0.5, f.getCumPct(1), tolerance); assertEquals("Integer 1 cumPct", 0.5, f.getCumPct(Long.valueOf(1)), tolerance); assertEquals("Integer 1 cumPct", 0.5, f.getCumPct(Integer.valueOf(1)), tolerance); Iterator<?> it = f.valuesIterator(); while (it.hasNext()) { assertTrue(it.next() instanceof Long); } } public void testSerial() { f.addValue(oneL); f.addValue(twoL); f.addValue(oneI); f.addValue(twoI); assertEquals(f, TestUtils.serializeAndRecover(f)); } } Other Commons Math examples (source code examples)Here is a short list of links related to this Commons Math FrequencyTest.java source code file: |
... this post is sponsored by my books ... | |
![]() #1 New Release! |
![]() FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.