39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
import unittest
|
|
import numpy as np
|
|
|
|
|
|
# from mock_plpy import MockPlPy
|
|
# plpy = MockPlPy()
|
|
#
|
|
# import sys
|
|
# sys.modules['plpy'] = plpy
|
|
from helper import plpy, fixture_file
|
|
import numpy as np
|
|
import crankshaft.clustering as cc
|
|
import crankshaft.pysal_utils as pu
|
|
from crankshaft import random_seeds
|
|
import json
|
|
|
|
class KMeansTest(unittest.TestCase):
|
|
"""Testing class for Moran's I functions"""
|
|
|
|
def setUp(self):
|
|
plpy._reset()
|
|
self.cluster_data = json.loads(open(fixture_file('kmeans.json')).read())
|
|
self.params = {"subquery": "select * from table",
|
|
"no_clusters": "10"
|
|
}
|
|
|
|
def test_kmeans(self):
|
|
data = self.cluster_data
|
|
plpy._define_result('select' ,data)
|
|
clusters = cc.kmeans('subquery', 2)
|
|
labels = [a[1] for a in clusters]
|
|
c1 = [a for a in clusters if a[1]==0]
|
|
c2 = [a for a in clusters if a[1]==1]
|
|
|
|
self.assertEqual(len(np.unique(labels)),2)
|
|
self.assertEqual(len(c1),20)
|
|
self.assertEqual(len(c2),20)
|
|
|