/** Tests the constructors of class MultivariatePolyaDistributionTest. */
  @Override
  public void testConstructors() {
    System.out.println("Constructors");

    MultivariatePolyaDistribution instance = new MultivariatePolyaDistribution();
    assertEquals(
        MultivariatePolyaDistribution.DEFAULT_DIMENSIONALITY, instance.getInputDimensionality());
    assertEquals(MultivariatePolyaDistribution.DEFAULT_NUM_TRIALS, instance.getNumTrials());

    int dim = RANDOM.nextInt(100) + 10;
    int numTrials = RANDOM.nextInt(100) + 10;
    instance = new MultivariatePolyaDistribution(dim, numTrials);
    assertEquals(dim, instance.getInputDimensionality());
    assertEquals(numTrials, instance.getNumTrials());

    Vector p = VectorFactory.getDefault().createUniformRandom(dim, 0.0, 10.0, RANDOM);
    instance = new MultivariatePolyaDistribution(p, numTrials);
    assertSame(p, instance.getParameters());
    assertEquals(numTrials, instance.getNumTrials());

    MultivariatePolyaDistribution i2 = new MultivariatePolyaDistribution(instance);
    assertNotSame(i2.getParameters(), instance.getParameters());
    assertEquals(i2.getParameters(), instance.getParameters());
    assertEquals(i2.getNumTrials(), instance.getNumTrials());
  }
 /** Test of getParameters method, of class MultivariatePolyaDistribution. */
 public void testGetParameters() {
   System.out.println("getParameters");
   MultivariatePolyaDistribution instance = this.createInstance();
   Vector p = instance.getParameters().scale(2.0);
   instance.setParameters(p);
   assertEquals(p, instance.getParameters());
 }
  /** Test of setParameters method, of class MultivariatePolyaDistribution. */
  public void testSetParameters() {
    System.out.println("setParameters");
    MultivariatePolyaDistribution instance = this.createInstance();
    Vector p = instance.getParameters().scale(2.0);
    instance.setParameters(p);
    assertEquals(p, instance.getParameters());

    p.setElement(0, 0.0);
    try {
      instance.setParameters(p);
      fail("Parameters must be > 0.0");
    } catch (Exception e) {
      System.out.println("Good: " + e);
    }

    try {
      instance.setParameters(null);
      fail("Cannot have null parameters");
    } catch (Exception e) {
      System.out.println("Good: " + e);
    }

    try {
      instance.setParameters(VectorFactory.getDefault().copyValues(1.0));
      fail("Must have dimensionality >= 2");
    } catch (Exception e) {
      System.out.println("Good: " + e);
    }
  }
 @Override
 public void testKnownConvertToVector() {
   System.out.println("Known convertToVector");
   MultivariatePolyaDistribution instance = this.createInstance();
   Vector p = instance.convertToVector();
   assertEquals(instance.getInputDimensionality(), p.getDimensionality());
   assertNotSame(p, instance.getParameters());
   assertEquals(p, instance.getParameters());
 }
 /** Test of getInputDimensionality method, of class MultivariatePolyaDistribution. */
 public void testGetInputDimensionality() {
   System.out.println("getInputDimensionality");
   MultivariatePolyaDistribution instance = this.createInstance();
   assertEquals(instance.getInputDimensionality(), instance.getParameters().getDimensionality());
 }