001    //Licensed to the Apache Software Foundation (ASF) under one
002    //or more contributor license agreements.  See the NOTICE file
003    //distributed with this work for additional information
004    //regarding copyright ownership.  The ASF licenses this file
005    //to you under the Apache License, Version 2.0 (the
006    //"License"); you may not use this file except in compliance
007    //with the License.  You may obtain a copy of the License at
008    
009    //http://www.apache.org/licenses/LICENSE-2.0
010    
011    //Unless required by applicable law or agreed to in writing,
012    //software distributed under the License is distributed on an
013    //"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
014    //KIND, either express or implied.  See the License for the
015    //specific language governing permissions and limitations
016    //under the License.
017    
018    package org.apache.commons.math.random;
019    
020    import org.apache.commons.math.stat.StatUtils;
021    
022    import junit.framework.*;
023    
024    public class GaussianRandomGeneratorTest
025    extends TestCase {
026    
027        public GaussianRandomGeneratorTest(String name) {
028            super(name);
029        }
030    
031        public void testMeanAndStandardDeviation() {
032            RandomGenerator rg = new JDKRandomGenerator();
033            rg.setSeed(17399225432l);
034            GaussianRandomGenerator generator = new GaussianRandomGenerator(rg);
035            double[] sample = new double[10000];
036            for (int i = 0; i < sample.length; ++i) {
037                sample[i] = generator.nextNormalizedDouble();
038            }
039            assertEquals(0.0, StatUtils.mean(sample), 0.012);
040            assertEquals(1.0, StatUtils.variance(sample), 0.01);
041        }
042    
043        public static Test suite() {
044            return new TestSuite(GaussianRandomGeneratorTest.class);
045        }
046    
047    }