@@ -74,4 +74,33 @@ describe('nodesCosineSimilarity normal demo', () => {
74
74
expect ( data ) . toBeLessThanOrEqual ( 1 ) ;
75
75
} )
76
76
} ) ;
77
+
78
+
79
+ it ( 'demo use involvedKeys: ' , ( ) => {
80
+ const involvedKeys = [ 'amount' , 'city' ] ;
81
+ const { nodes } = propertiesGraphData ;
82
+ const { allCosineSimilarity, similarNodes } = nodesCosineSimilarity ( nodes as NodeConfig [ ] , nodes [ 16 ] , involvedKeys ) ;
83
+ expect ( allCosineSimilarity . length ) . toBe ( 16 ) ;
84
+ expect ( similarNodes . length ) . toBe ( 16 ) ;
85
+ allCosineSimilarity . forEach ( data => {
86
+ expect ( data ) . toBeGreaterThanOrEqual ( 0 ) ;
87
+ expect ( data ) . toBeLessThanOrEqual ( 1 ) ;
88
+ } )
89
+ expect ( Number ( Math . max . apply ( null , allCosineSimilarity ) . toString ( ) . match ( / ^ \d + (?: \. \d { 0 , 2 } ) ? / ) ) ) . toBe ( 0.99 ) ;
90
+ expect ( similarNodes [ 0 ] . id ) . toBe ( 'node-11' ) ;
91
+ } ) ;
92
+
93
+ it ( 'demo use uninvolvedKeys: ' , ( ) => {
94
+ const uninvolvedKeys = [ 'amount' ] ;
95
+ const { nodes } = propertiesGraphData ;
96
+ const { allCosineSimilarity, similarNodes } = nodesCosineSimilarity ( nodes as NodeConfig [ ] , nodes [ 16 ] , [ ] , uninvolvedKeys ) ;
97
+ expect ( allCosineSimilarity . length ) . toBe ( 16 ) ;
98
+ expect ( similarNodes . length ) . toBe ( 16 ) ;
99
+ allCosineSimilarity . forEach ( data => {
100
+ expect ( data ) . toBeGreaterThanOrEqual ( 0 ) ;
101
+ expect ( data ) . toBeLessThanOrEqual ( 1 ) ;
102
+ } )
103
+ expect ( Number ( Math . max . apply ( null , allCosineSimilarity ) . toString ( ) . match ( / ^ \d + (?: \. \d { 0 , 2 } ) ? / ) ) ) . toBe ( 0.66 ) ;
104
+ expect ( similarNodes [ 0 ] . id ) . toBe ( 'node-11' ) ;
105
+ } ) ;
77
106
} ) ;
0 commit comments