Add MLP partial train test after restore from file (#243)

This commit is contained in:
Arkadiusz Kondas 2018-02-26 00:02:04 +01:00 committed by GitHub
parent 9e375ca544
commit d188790276
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 29 additions and 0 deletions

View File

@ -193,6 +193,35 @@ class MLPClassifierTest extends TestCase
$this->assertEquals($predicted, $restoredClassifier->predict($testSamples));
}
public function testSaveAndRestoreWithPartialTraining(): void
{
$network = new MLPClassifier(2, [2], ['a', 'b'], 1000);
$network->partialTrain(
[[1, 0], [0, 1]],
['a', 'b']
);
$this->assertEquals('a', $network->predict([1, 0]));
$this->assertEquals('b', $network->predict([0, 1]));
$filename = 'perceptron-test-'.random_int(100, 999).'-'.uniqid();
$filepath = tempnam(sys_get_temp_dir(), $filename);
$modelManager = new ModelManager();
$modelManager->saveToFile($network, $filepath);
/** @var MLPClassifier $restoredNetwork */
$restoredNetwork = $modelManager->restoreFromFile($filepath);
$restoredNetwork->partialTrain(
[[1, 1], [0, 0]],
['a', 'b']
);
$this->assertEquals('a', $restoredNetwork->predict([1, 0]));
$this->assertEquals('b', $restoredNetwork->predict([0, 1]));
$this->assertEquals('a', $restoredNetwork->predict([1, 1]));
$this->assertEquals('b', $restoredNetwork->predict([0, 0]));
}
public function testThrowExceptionOnInvalidLayersNumber(): void
{
$this->expectException(InvalidArgumentException::class);