@@ -57,13 +57,32 @@ public function testSaveAndRestore(): void
5757 $ classifier ->train ($ trainSamples , $ trainLabels );
5858 $ predicted = $ classifier ->predict ($ testSamples );
5959
60- $ filename = 'svc-test- ' .random_int (100 , 999 ).'- ' .uniqid ();
61- $ filepath = tempnam (sys_get_temp_dir (), $ filename );
60+ $ filepath = tempnam (sys_get_temp_dir (), uniqid ('svc-test ' , true ));
6261 $ modelManager = new ModelManager ();
6362 $ modelManager ->saveToFile ($ classifier , $ filepath );
6463
6564 $ restoredClassifier = $ modelManager ->restoreFromFile ($ filepath );
6665 $ this ->assertEquals ($ classifier , $ restoredClassifier );
6766 $ this ->assertEquals ($ predicted , $ restoredClassifier ->predict ($ testSamples ));
67+ $ this ->assertEquals ($ predicted , $ testLabels );
68+ }
69+
70+ public function testWithNonDotDecimalLocale (): void
71+ {
72+ $ currentLocale = setlocale (LC_NUMERIC , '0 ' );
73+ setlocale (LC_NUMERIC , 'pl_PL.utf8 ' );
74+
75+ $ trainSamples = [[1 , 3 ], [1 , 4 ], [2 , 4 ], [3 , 1 ], [4 , 1 ], [4 , 2 ]];
76+ $ trainLabels = ['a ' , 'a ' , 'a ' , 'b ' , 'b ' , 'b ' ];
77+
78+ $ testSamples = [[3 , 2 ], [5 , 1 ], [4 , 3 ]];
79+ $ testLabels = ['b ' , 'b ' , 'b ' ];
80+
81+ $ classifier = new SVC (Kernel::LINEAR , $ cost = 1000 );
82+ $ classifier ->train ($ trainSamples , $ trainLabels );
83+
84+ $ this ->assertEquals ($ classifier ->predict ($ testSamples ), $ testLabels );
85+
86+ setlocale (LC_NUMERIC , $ currentLocale );
6887 }
6988}
0 commit comments