KMeans Application Test
Application Test for Weighted Kmeans Clustering.
The weighted kmeans algorithm is application-tested for a benzene molecule, using 20 centroids. The weight is determined from the GS density, computed using LCAO (to avoid SCF and make the test fast). Given some fixed initial positions (using a fixed random seed), the final centroid positions are asserted on in the testsuite app.
Sampling Initial Centroids
Initial centroids are chosen using the Fisher-Yates algorithm, which allows m random integers to be chosen from a reservoir of n integers, with no replacement (no chance of choosing the same number twice). Note, this scales as O(n) in memory, where n is np_global, however this is probably ok for integers - we may need to revisit for large systems.
This also ensures that the algorithm gives the same results in serial and in DD.
Initiating Regression/Integration Test Restructuring
Also begins to address restructuring the location of source for application/regression/integration tests. More detailed restructuring is laid out in issue #951