class ELMClassifiertest(unittest.TestCase): def setUp(self): self.mockConnectionPool = Mock(spec=pycassa.pool.ConnectionPool) self.minimizationType = 'FP' self.numberNeurons = 10 np.random.seed(1) @patch('elm.pycassa.columnfamily.ColumnFamily') def test_train_wisconsin1(self, mockFunction): print 'Yes, I am running, be patient, Human.' returnedMock = Mock(spec=pycassa.ColumnFamily) returnedMock.get = mock_columnfamilyget returnedMock.batch = Mock() mockbatchinsert = Mock() mockbatchinsert.insert = mock_batchinsert mockbatch = Mock() mockbatch.__enter__ = Mock(return_value=mockbatchinsert) mockbatch.__exit__ = Mock(return_value=False) mockFunction.return_value = returnedMock returnedMock.batch.return_value = mockbatch self.myELM = ELM(self.minimizationType, self.mockConnectionPool, self.numberNeurons) inputData = np.loadtxt('./test_train_input_wisconsin1.txt').reshape((379, 30)) outputData = np.loadtxt('./test_train_output_wisconsin1.txt').reshape((379, 1)) self.myELM.ELMTrainingData = ELMData(inputData, outputData, [], []) self.myELM.storeTrainingDataToCassandra() self.myELM.performTraining() self.myELM.trained = True print 'Best LOO result retained: %s' % self.myELM.bestClassificationRateLOO inputTestData = np.loadtxt('./test_test_input_wisconsin1.txt').reshape((190, 30)) outputTestData = np.loadtxt('./test_test_output_wisconsin1.txt').reshape((190, 1)) testData = ELMData(inputTestData, outputTestData, [], []) confidence, verdict = self.myELM.verdict(testData) print 'Test error: %s' % np.mean(verdict == outputTestData) listOfErrors = [item for item in xrange(len(verdict)) if verdict[item]!=outputTestData[item]] print confidence[listOfErrors]
class ELMTest(unittest.TestCase): # We will test both FP and FN versions of the ELM def setUp(self): self.mockConnectionPool = Mock(spec=pycassa.pool.ConnectionPool) self.minimizationType = 'FP' self.numberNeurons = 100 def test_init(self): # Check that wrong input raises exception self.assertRaises(Exception, ELM, 'SomeString', self.mockConnectionPool, self.numberNeurons) self.assertRaises(Exception, ELM, self.minimizationType, 'NotAConnectionPool', self.numberNeurons) self.assertRaises(Exception, ELM, self.minimizationType, self.mockConnectionPool, 'NotANumber') @patch('elm.pycassa.columnfamily.ColumnFamily') def test_createTrainingData(self, mockFunction): returnedMock = Mock(spec=pycassa.ColumnFamily) returnedMock.get = mock_columnfamilyget returnedMock.get_range = mock_columnfamilyget_range returnedMock.batch = Mock() mockbatchinsert = Mock() mockbatchinsert.insert = mock_batchinsert mockbatch = Mock() mockbatch.__enter__ = Mock(return_value=mockbatchinsert) mockbatch.__exit__ = Mock(return_value=False) mockFunction.return_value = returnedMock returnedMock.batch.return_value = mockbatch self.myELM = ELM(self.minimizationType, self.mockConnectionPool, self.numberNeurons) self.myELM.createTrainingData() @patch('elm.pycassa.columnfamily.ColumnFamily') def test_storeTrainingDataToCassandra(self, mockFunction): returnedMock = Mock(spec=pycassa.ColumnFamily) returnedMock.get = mock_columnfamilyget returnedMock.get_range = mock_columnfamilyget_range returnedMock.batch = Mock() mockbatchinsert = Mock() mockbatchinsert.insert = mock_batchinsert mockbatch = Mock() mockbatch.__enter__ = Mock(return_value=mockbatchinsert) mockbatch.__exit__ = Mock(return_value=False) mockFunction.return_value = returnedMock returnedMock.batch.return_value = mockbatch self.myELM = ELM(self.minimizationType, self.mockConnectionPool, self.numberNeurons) self.myELM.createTrainingData() self.myELM.storeTrainingDataToCassandra() @patch('elm.pycassa.columnfamily.ColumnFamily') def test_train(self, mockFunction): returnedMock = Mock(spec=pycassa.ColumnFamily) returnedMock.get = mock_columnfamilyget returnedMock.batch = Mock() mockbatchinsert = Mock() mockbatchinsert.insert = mock_batchinsert mockbatch = Mock() mockbatch.__enter__ = Mock(return_value=mockbatchinsert) mockbatch.__exit__ = Mock(return_value=False) mockFunction.return_value = returnedMock returnedMock.batch.return_value = mockbatch self.myELM = ELM(self.minimizationType, self.mockConnectionPool, self.numberNeurons) self.myELM.train() @patch('elm.pycassa.columnfamily.ColumnFamily') def test_verdict(self, mockFunction): returnedMock = Mock(spec=pycassa.ColumnFamily) returnedMock.get = mock_columnfamilyget mockFunction.return_value = returnedMock self.myELM = ELM(self.minimizationType, self.mockConnectionPool, self.numberNeurons) self.myELM.train() inputTestData = np.loadtxt('./test_input_data_training_elm.txt').reshape((633, 9)) outputTestData = np.loadtxt('./test_output_data_training_elm.txt').reshape((633, 1)) ELMTestingData = ELMData(inputTestData, outputTestData, [], [])