@@ -230,68 +230,73 @@ describe('Classifier tests', () => {
230230 expect ( get ( confidences ) . size ) . toBe ( 3 ) ;
231231 } ) ;
232232
233- test ( 'Classifier should correctly classify' , async ( ) => {
234- const vectors = [
235- new BaseVector ( [ 1 , 2 , 4 ] , [ 'x' , 'y' , 'z' ] ) ,
236- new BaseVector ( [ 4 , 8 , 16 ] , [ 'x' , 'y' , 'z' ] ) ,
237- new BaseVector ( [ 10 , 20 , 40 ] , [ 'x' , 'y' , 'z' ] ) ,
238- ] ;
239- const classifierInput = new ClassifierInput ( vectors ) ;
240- const filterMax : Filter = FilterTypes . createFilter ( FilterType . MAX ) ;
241- const filterMean : Filter = FilterTypes . createFilter ( FilterType . MEAN ) ;
242- const filterMin : Filter = FilterTypes . createFilter ( FilterType . MIN ) ;
243- const filters : Filters = new Filters ( writable ( [ filterMax , filterMean , filterMin ] ) ) ;
244-
245- let iterations = 0 ;
246-
247- const trainingData = new TestTrainingDataRepository ( ) . getTrainingData ( ) ;
248- const trainedModel = await new LayersModelTrainer (
249- StaticConfiguration . defaultNeuralNetworkSettings ,
250- ( ) => ( iterations += 1 ) ,
251- ) . trainModel ( trainingData ) ;
252- const model = writable ( trainedModel ) ;
253-
254- const gestureRepository = new TestGestureRepository ( ) ;
255- gestureRepository . addGesture ( {
256- color : 'blue' ,
257- ID : 1 ,
258- name : 'test' ,
259- output : { } ,
260- recordings : [ ] ,
261- } ) ;
262- gestureRepository . addGesture ( {
263- color : 'blue' ,
264- ID : 2 ,
265- name : 'test' ,
266- output : { } ,
267- recordings : [ ] ,
268- } ) ;
269- gestureRepository . addGesture ( {
270- color : 'blue' ,
271- ID : 3 ,
272- name : 'test' ,
273- output : { } ,
274- recordings : [ ] ,
275- } ) ;
276-
277- const confidences = new Confidences ( ) ;
278-
279- const classifier = new ClassifierFactory ( ) . buildClassifier (
280- model ,
281- async ( ) => void 0 ,
282- filters ,
283- gestureRepository ,
284- ( gestureId , confidence ) => confidences . setConfidence ( gestureId , confidence ) ,
285- new Snackbar ( ) ,
286- ) ;
287-
288- // This is based on known correct results
289- await classifier . classify ( classifierInput )
290-
291- expect ( get ( confidences ) . get ( 1 ) ) . toBeCloseTo ( 0 ) ;
292- expect ( get ( confidences ) . get ( 2 ) ) . toBeCloseTo ( 0 ) ;
293- expect ( get ( confidences ) . get ( 3 ) ) . toBeCloseTo ( 1 ) ;
294- } , {
295- repeats : 20 , retry : 2
296- } ) ;
233+ test (
234+ 'Classifier should correctly classify' ,
235+ async ( ) => {
236+ const vectors = [
237+ new BaseVector ( [ 1 , 2 , 4 ] , [ 'x' , 'y' , 'z' ] ) ,
238+ new BaseVector ( [ 4 , 8 , 16 ] , [ 'x' , 'y' , 'z' ] ) ,
239+ new BaseVector ( [ 10 , 20 , 40 ] , [ 'x' , 'y' , 'z' ] ) ,
240+ ] ;
241+ const classifierInput = new ClassifierInput ( vectors ) ;
242+ const filterMax : Filter = FilterTypes . createFilter ( FilterType . MAX ) ;
243+ const filterMean : Filter = FilterTypes . createFilter ( FilterType . MEAN ) ;
244+ const filterMin : Filter = FilterTypes . createFilter ( FilterType . MIN ) ;
245+ const filters : Filters = new Filters ( writable ( [ filterMax , filterMean , filterMin ] ) ) ;
246+
247+ let iterations = 0 ;
248+
249+ const trainingData = new TestTrainingDataRepository ( ) . getTrainingData ( ) ;
250+ const trainedModel = await new LayersModelTrainer (
251+ StaticConfiguration . defaultNeuralNetworkSettings ,
252+ ( ) => ( iterations += 1 ) ,
253+ ) . trainModel ( trainingData ) ;
254+ const model = writable ( trainedModel ) ;
255+
256+ const gestureRepository = new TestGestureRepository ( ) ;
257+ gestureRepository . addGesture ( {
258+ color : 'blue' ,
259+ ID : 1 ,
260+ name : 'test' ,
261+ output : { } ,
262+ recordings : [ ] ,
263+ } ) ;
264+ gestureRepository . addGesture ( {
265+ color : 'blue' ,
266+ ID : 2 ,
267+ name : 'test' ,
268+ output : { } ,
269+ recordings : [ ] ,
270+ } ) ;
271+ gestureRepository . addGesture ( {
272+ color : 'blue' ,
273+ ID : 3 ,
274+ name : 'test' ,
275+ output : { } ,
276+ recordings : [ ] ,
277+ } ) ;
278+
279+ const confidences = new Confidences ( ) ;
280+
281+ const classifier = new ClassifierFactory ( ) . buildClassifier (
282+ model ,
283+ async ( ) => void 0 ,
284+ filters ,
285+ gestureRepository ,
286+ ( gestureId , confidence ) => confidences . setConfidence ( gestureId , confidence ) ,
287+ new Snackbar ( ) ,
288+ ) ;
289+
290+ // This is based on known correct results
291+ await classifier . classify ( classifierInput ) ;
292+
293+ expect ( get ( confidences ) . get ( 1 ) ) . toBeCloseTo ( 0 ) ;
294+ expect ( get ( confidences ) . get ( 2 ) ) . toBeCloseTo ( 0 ) ;
295+ expect ( get ( confidences ) . get ( 3 ) ) . toBeCloseTo ( 1 ) ;
296+ } ,
297+ {
298+ repeats : 20 ,
299+ retry : 2 ,
300+ } ,
301+ ) ;
297302} ) ;
0 commit comments