package ac.essex.ooechs.problems;

import ac.essex.ooechs.kmeans.KMeansClusterer;
import ac.essex.ooechs.kmeans.ClusterClass;
import ac.essex.ooechs.kmeans.KMeansSolution;
import ac.essex.ooechs.kmeans.DataPoint;

import java.util.Vector;

/**
 * A basic class which implements in Java an example problem
 * by Kardi Teknomo, available here:
 * <a href="http://people.revoledu.com/kardi/tutorial/kMean/NumericalExample.htm">http://people.revoledu.com/kardi/tutorial/kMean/NumericalExample.htm</a>
 */
public class MedicineClusteringProblem {

    public static void main(String[] args) {
        
        ClusterClass group1 = new ClusterClass(1, "Group 1");
        ClusterClass group2 = new ClusterClass(2, "Group 2");

        KMeansClusterer clusterer = new KMeansClusterer(2);//KMeansAlgorithm.CHOOSE_FIRST_N_POINTS, classes);

        DataPoint medicineA = new DataPoint(new double[]{1, 1});
        DataPoint medicineB = new DataPoint(new double[]{2, 1});
        DataPoint medicineC = new DataPoint(new double[]{4, 3});
        DataPoint medicineD = new DataPoint(new double[]{5, 4});

        clusterer.add(medicineA);
        clusterer.add(medicineB);
        clusterer.add(medicineC);
        clusterer.add(medicineD);

        clusterer.run();

        KMeansSolution solution = clusterer.getSolution();

        System.out.println(solution.test(medicineA));
        System.out.println(solution.test(medicineB));
        System.out.println(solution.test(medicineC));
        System.out.println(solution.test(medicineD));

    }

}
