/*
* #%L
* gitools-core
* %%
* Copyright (C) 2013 Universitat Pompeu Fabra - Biomedical Genomics group
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
package org.gitools.analysis.stats.test.factory;
import org.gitools.analysis.ToolConfig;
import org.gitools.analysis.stats.test.BinomialTest;
import org.gitools.analysis.stats.test.BinomialTest.AproximationMode;
import org.gitools.analysis.stats.test.EnrichmentTest;
public class BinomialTestFactory extends TestFactory {
public static final String APROXIMATION_PROPERTY = "aproximation";
public static final String EXACT_APROX = "exact";
public static final String NORMAL_APROX = "normal";
public static final String POISSON_APROX = "poisson";
private final AproximationMode aproxMode;
public BinomialTestFactory(ToolConfig config) {
super(config);
final String aproxModeName = config.getConfiguration().get(APROXIMATION_PROPERTY);
if ("exact".equalsIgnoreCase(aproxModeName)) {
this.aproxMode = AproximationMode.onlyExact;
} else if ("normal".equalsIgnoreCase(aproxModeName)) {
this.aproxMode = AproximationMode.onlyNormal;
} else if ("poisson".equalsIgnoreCase(aproxModeName)) {
this.aproxMode = AproximationMode.onlyPoisson;
} else if ("automatic".equalsIgnoreCase(aproxModeName)) {
this.aproxMode = AproximationMode.automatic;
} else {
this.aproxMode = AproximationMode.onlyExact;
}
}
/*public BinomialTestFactory(AproximationMode aproxMode) {
this.aproxMode = aproxMode;
}*/
@Override
public EnrichmentTest create() {
return new BinomialTest(aproxMode);
}
}