All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.meanbean.factories.basic.DoubleFactory Maven / Gradle / Ivy

Go to download

Mean Bean is an open source Java test library that tests equals and hashCode contract compliance, as well as JavaBean/POJO getter and setter methods.

There is a newer version: 2.0.3
Show newest version
package org.meanbean.factories.basic;

import org.meanbean.util.RandomValueGenerator;

/**
 * Concrete Factory that creates random Double objects.
 * 
 * @author Graham Williamson
 */
public final class DoubleFactory extends RandomFactoryBase {

    /** Unique version ID of this Serializable class. */
    private static final long serialVersionUID = 1L;
    
    /**
     * Construct a new Double object factory.
     * 
     * @param randomValueGenerator
     *            A random value generator used by the Factory to generate random values.
     *            
     * @throws IllegalArgumentException
     *             If the specified randomValueGenerator is deemed illegal. For example, if it is null.
     */
    public DoubleFactory(RandomValueGenerator randomValueGenerator) throws IllegalArgumentException {
        super(randomValueGenerator);
    }

    /**
     * Create a new Double object.
     * 
     * @return A new Double object.
     */
    @Override
    public Double create() {
    	// Basis of our random number. This value is always positive, so we need to decide the sign
    	double result = getRandomValueGenerator().nextDouble();
        // Our double is either based on MAX_VALUE, else MIN_VALUE
        boolean basedOnMax = getRandomValueGenerator().nextBoolean();
        result *= basedOnMax ? Double.MAX_VALUE : Double.MIN_VALUE;
        // Our double is either positive, else negative 
        boolean positive = getRandomValueGenerator().nextBoolean();
        result *= positive ? 1 : -1;
        return result;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy