@Test
public void assign_soft() {
List<double[]> clusters = new ArrayList<double[]>();
clusters.add( new double[]{10,0,0});
clusters.add( new double[]{5,0,0});
AssignKMeans_F64 alg = new AssignKMeans_F64(clusters);
double histogram[] = new double[2];
alg.assign(new double[]{10,0,0},histogram);
assertEquals(1.0, histogram[0], 1e-8);
assertEquals(0.0, histogram[1],1e-8);
alg.assign(new double[]{6, 0, 0}, histogram);
assertTrue(histogram[0]*10 < histogram[1]);
clusters.add( new double[]{5000,0,0});
histogram = new double[3];
alg.assign(new double[]{6,0,0},histogram);
assertTrue(histogram[0]/30.0 > histogram[2]);
assertEquals(histogram[0], histogram[1], 0.01);
}