public void SparseDistributionListTolerances() { var bern = SparseBernoulliList.FromSize(1); var beta = SparseBetaList.FromSize(1); var gamma = SparseGammaList.FromSize(1); var gauss = SparseGaussianList.FromSize(1); double origBernDefaultTolerance = SparseBernoulliList.DefaultTolerance; double origBetaDefaultTolerance = SparseBetaList.DefaultTolerance; double origGammaDefaultTolerance = SparseGammaList.DefaultTolerance; double origGaussDefaultTolerance = SparseGaussianList.DefaultTolerance; Assert.Equal(origBernDefaultTolerance, bern.Tolerance); Assert.Equal(origBetaDefaultTolerance, beta.Tolerance); Assert.Equal(origGammaDefaultTolerance, gamma.Tolerance); Assert.Equal(origGaussDefaultTolerance, gauss.Tolerance); double newBernDefaultTolerance = 0.1; double newBetaDefaultTolerance = 0.2; double newGammaDefaultTolerance = 0.3; double newGaussDefaultTolerance = 0.4; try { // Checks that we can maintain different default tolerances // on different specializations of the generic base class SparseBernoulliList.DefaultTolerance = newBernDefaultTolerance; SparseBetaList.DefaultTolerance = newBetaDefaultTolerance; SparseGammaList.DefaultTolerance = newGammaDefaultTolerance; SparseGaussianList.DefaultTolerance = newGaussDefaultTolerance; Assert.Equal(newBernDefaultTolerance, SparseBernoulliList.DefaultTolerance); Assert.Equal(newBetaDefaultTolerance, SparseBetaList.DefaultTolerance); Assert.Equal(newGammaDefaultTolerance, SparseGammaList.DefaultTolerance); Assert.Equal(newGaussDefaultTolerance, SparseGaussianList.DefaultTolerance); // Now check that the default tolerance gets picked up by the factory methods. bern = SparseBernoulliList.FromSize(1); beta = SparseBetaList.FromSize(1); gamma = SparseGammaList.FromSize(1); gauss = SparseGaussianList.FromSize(1); Assert.Equal(newBernDefaultTolerance, bern.Tolerance); Assert.Equal(newBetaDefaultTolerance, beta.Tolerance); Assert.Equal(newGammaDefaultTolerance, gamma.Tolerance); Assert.Equal(newGaussDefaultTolerance, gauss.Tolerance); } finally { // Now revert back so that we don't spoil the other tests SparseBernoulliList.DefaultTolerance = origBernDefaultTolerance; SparseBetaList.DefaultTolerance = origBetaDefaultTolerance; SparseGammaList.DefaultTolerance = origGammaDefaultTolerance; SparseGaussianList.DefaultTolerance = origGaussDefaultTolerance; } }
public static SparseGaussianList SampleAverageLogarithmInit([IgnoreDependency] ISparseList <double> mean) { return(SparseGaussianList.FromSize(mean.Count)); }