# Data Science with Java – Part 4 : Testing Hypothesis with the inference package

To test if a certain hypothesis is likely to be true we can take advantage of the Apache commons math inference package.

Considering the tests included in the package is a good opportunity to learn more about statistics and probability theory.

Let´s consider the following binomial test about flipping a coin:

```		BinomialTest binomialTest = new BinomialTest();

double nullHypothesis = 0.5; //fair coin
int numberOfSuccesses = 9; //number of heads (biased coin)

//Two sided = Represents a right-sided test. H0: p ≤ p0, H1: p > p0.
AlternativeHypothesis alternativeHypothesis = AlternativeHypothesis.TWO_SIDED;
int numberOfTrials = 10;

// Returns the observed significance level, or p-value, associated with
// a Binomial test.
double significanceLevel = binomialTest.binomialTest(numberOfTrials, numberOfSuccesses, nullHypothesis,
alternativeHypothesis);

double alpha = 0.03; //significance level of the test

// Returns whether the null hypothesis can be rejected with the given
// confidence level.
//true if signficanceLevel < alpha
boolean rejected = binomialTest.binomialTest(numberOfTrials, numberOfSuccesses, nullHypothesis,
alternativeHypothesis, alpha);

System.out.println("The significance level is " + significanceLevel);
System.out.println("Can we reject the null hypothesis?" + rejected);

```

The result that we get is:

```The significance level is 0.021484375000000003
Can we reject the null hypothesis?true```

The significance level is lower that the expected value alpha; it means that we can discard the test.

In the next posts I will write about the ChiSquare and KolmogorovSmirnov tests too. Stay tuned! 🙂