public void no_sample_test()
{
// Declare some boolean data
bool[,] source =
{
// v1,v2,v3,v4,v5,v6,v7,v8,result
{ true, true, false, true, true, false, false, false, false },
{ true, true, true, true, true, false, false, false, false },
{ true, false, true, true, true, false, false, true, false },
{ true, true, true, true, true, false, false, true, false },
{ false, false, true, true, true, false, false, true, false },
{ true, true, true, true, false, false, false, false, false },
{ false, true, true, false, true, false, false, false, false },
{ true, true, true, false, true, false, false, false, false },
{ false, true, true, false, true, false, false, true, false },
{ false, true, true, true, true, false, false, true, false },
{ false, true, true, false, false, false, false, false, false },
{ true, false, false, true, false, false, false, true, true },
{ true, true, false, true, false, false, false, true, true },
{ true, true, true, true, false, false, false, true, true },
{ false, true, true, true, false, true, true, true, true },
{ true, true, false, false, false, true, true, true, true },
{ false, true, false, false, false, true, true, true, true },
{ true, true, true, true, false, true, true, true, true },
{ false, false, false, false, false, true, true, true, true },
{ true, true, false, true, false, true, true, true, true },
{ false, true, false, true, false, true, true, true, true },
{ false, true, true, false, false, true, true, true, true },
};
// Evaluation of a single point
int[] sp = new[] { false, false, false, false, true, true, true, true }.ToInt32();
// Transform to integers, then to jagged (matrix with [][] instead of [,])
int[][] data = source.ToInt32().ToJagged();
// Classification setup
var inputs = data.Get(null, 0, 8); // select all rows, with cols 0 to 8
var outputs = data.GetColumn(8); // select last column
var learner2 = new NaiveBayesLearning<GeneralDiscreteDistribution, GeneralDiscreteOptions, int>();
learner2.Options.InnerOption.UseLaplaceRule = true;
learner2.Distribution = (i, j) => new GeneralDiscreteDistribution(symbols: 2);
learner2.ParallelOptions.MaxDegreeOfParallelism = 1;
var nb2 = learner2.Learn(inputs, outputs);
test(nb2, inputs, sp);
var learner1 = new NaiveBayesLearning();
learner1.Options.InnerOption.UseLaplaceRule = true;
learner2.ParallelOptions.MaxDegreeOfParallelism = 1;
var nb1 = learner1.Learn(inputs, outputs);
test(nb1, inputs, sp);
}