@@ -43,11 +43,14 @@ class RecordSimilarityRequestTest {
4343 private static final ObjectMapper MAPPER = ApiModelMixinModule .setupObjectMapper (new ObjectMapper ());
4444
4545 private static final String EXPECTED_JSON = "{\" fields\" :{\" dob2\" :{\" type\" :\" rni_date\" ,\" weight\" :0.1},\" primaryName\" :{\" type\" :\" rni_name\" ,\" weight\" :0.5},\" dob\" :{\" type\" :\" rni_date\" ,\" weight\" :0.2},\" addr\" :{\" type\" :\" rni_address\" ,\" weight\" :0.5}},\" properties\" :{\" threshold\" :0.7,\" includeExplainInfo\" :true},\" records\" :{\" left\" :[{\" dob2\" :{\" date\" :\" 1993/04/16\" },\" primaryName\" :{\" text\" :\" Ethan R\" ,\" entityType\" :\" PERSON\" ,\" language\" :\" eng\" ,\" languageOfOrigin\" :\" eng\" ,\" script\" :\" Latn\" },\" dob\" :\" 1993-04-16\" ,\" addr\" :\" 123 Roadlane Ave\" },{\" primaryName\" :{\" text\" :\" Evan R\" },\" dob\" :{\" date\" :\" 1993-04-16\" }}],\" right\" :[{\" primaryName\" :{\" text\" :\" Seth R\" ,\" language\" :\" eng\" },\" dob\" :{\" date\" :\" 1993-04-16\" }},{\" dob2\" :{\" date\" :\" 1993/04/16\" },\" primaryName\" :\" Ivan R\" ,\" dob\" :{\" date\" :\" 1993-04-16\" },\" addr\" :{\" address\" :\" 123 Roadlane Ave\" }}]}}" ;
46+ private static final String EXPECTED_JSON_WITH_PARAMS = "{\" fields\" :{\" dob2\" :{\" type\" :\" rni_date\" ,\" weight\" :0.1},\" primaryName\" :{\" type\" :\" rni_name\" ,\" weight\" :0.5},\" dob\" :{\" type\" :\" rni_date\" ,\" weight\" :0.2},\" addr\" :{\" type\" :\" rni_address\" ,\" weight\" :0.5}},\" properties\" :{\" threshold\" :0.7,\" includeExplainInfo\" :true},\" records\" :{\" left\" :[{\" dob2\" :{\" date\" :\" 1993/04/16\" },\" primaryName\" :{\" text\" :\" Ethan R\" ,\" entityType\" :\" PERSON\" ,\" language\" :\" eng\" ,\" languageOfOrigin\" :\" eng\" ,\" script\" :\" Latn\" },\" dob\" :\" 1993-04-16\" ,\" addr\" :\" 123 Roadlane Ave\" },{\" primaryName\" :{\" text\" :\" Evan R\" },\" dob\" :{\" date\" :\" 1993-04-16\" }}],\" right\" :[{\" primaryName\" :{\" text\" :\" Seth R\" ,\" language\" :\" eng\" },\" dob\" :{\" date\" :\" 1993-04-16\" }},{\" dob2\" :{\" date\" :\" 1993/04/16\" },\" primaryName\" :\" Ivan R\" ,\" dob\" :{\" date\" :\" 1993-04-16\" },\" addr\" :{\" address\" :\" 123 Roadlane Ave\" }}]},\" parameters\" :{\" timeDistanceWeight\" :\" 0.8\" ,\" stringDistanceWeight\" :\" 0.1\" }}" ;
47+ private static final String EXPECTED_JSON_WITH_UNIVERSE = "{\" fields\" :{\" dob2\" :{\" type\" :\" rni_date\" ,\" weight\" :0.1},\" primaryName\" :{\" type\" :\" rni_name\" ,\" weight\" :0.5},\" dob\" :{\" type\" :\" rni_date\" ,\" weight\" :0.2},\" addr\" :{\" type\" :\" rni_address\" ,\" weight\" :0.5}},\" properties\" :{\" threshold\" :0.7,\" includeExplainInfo\" :true},\" records\" :{\" left\" :[{\" dob2\" :{\" date\" :\" 1993/04/16\" },\" primaryName\" :{\" text\" :\" Ethan R\" ,\" entityType\" :\" PERSON\" ,\" language\" :\" eng\" ,\" languageOfOrigin\" :\" eng\" ,\" script\" :\" Latn\" },\" dob\" :\" 1993-04-16\" ,\" addr\" :\" 123 Roadlane Ave\" },{\" primaryName\" :{\" text\" :\" Evan R\" },\" dob\" :{\" date\" :\" 1993-04-16\" }}],\" right\" :[{\" primaryName\" :{\" text\" :\" Seth R\" ,\" language\" :\" eng\" },\" dob\" :{\" date\" :\" 1993-04-16\" }},{\" dob2\" :{\" date\" :\" 1993/04/16\" },\" primaryName\" :\" Ivan R\" ,\" dob\" :{\" date\" :\" 1993-04-16\" },\" addr\" :{\" address\" :\" 123 Roadlane Ave\" }}]},\" parameterUniverse\" :\" myUniverse\" }" ;
48+
4649 private static final RecordSimilarityRequest EXPECTED_REQUEST = RecordSimilarityRequest .builder ()
4750 .fields (Map .of (
51+ "dob2" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.1 ).build (),
4852 "primaryName" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .NAME ).weight (0.5 ).build (),
4953 "dob" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.2 ).build (),
50- "dob2" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.1 ).build (),
5154 "addr" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .ADDRESS ).weight (0.5 ).build ()))
5255 .properties (RecordSimilarityProperties .builder ().threshold (0.7 ).includeExplainInfo (true ).build ())
5356 .records (RecordSimilarityRecords .builder ()
@@ -85,17 +88,120 @@ class RecordSimilarityRequestTest {
8588 ).build ()
8689 ).build ();
8790
91+ private static final RecordSimilarityRequest EXPECTED_REQUEST_WITH_PARAMS = RecordSimilarityRequest .builder ()
92+ .fields (Map .of (
93+ "dob2" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.1 ).build (),
94+ "primaryName" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .NAME ).weight (0.5 ).build (),
95+ "dob" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.2 ).build (),
96+ "addr" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .ADDRESS ).weight (0.5 ).build ()))
97+ .properties (RecordSimilarityProperties .builder ().threshold (0.7 ).includeExplainInfo (true ).build ())
98+ .records (RecordSimilarityRecords .builder ()
99+ .left (
100+ List .of (
101+ Map .of (
102+ "primaryName" , NameField .FieldedName .builder ()
103+ .text ("Ethan R" ).entityType ("PERSON" )
104+ .language (LanguageCode .ENGLISH )
105+ .languageOfOrigin (LanguageCode .ENGLISH )
106+ .script (ISO15924 .Latn )
107+ .build (),
108+ "dob" , DateField .UnfieldedDate .builder ().date ("1993-04-16" ).build (),
109+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
110+ "addr" , AddressField .UnfieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
111+ ),
112+ Map .of (
113+ "primaryName" , NameField .FieldedName .builder ().text ("Evan R" ).build (),
114+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
115+ )
116+ )
117+ ).right (
118+ List .of (
119+ Map .of (
120+ "primaryName" , NameField .FieldedName .builder ().text ("Seth R" ).language (LanguageCode .ENGLISH ).build (),
121+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
122+ ),
123+ Map .of (
124+ "primaryName" , NameField .UnfieldedName .builder ().text ("Ivan R" ).build (),
125+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build (),
126+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
127+ "addr" , AddressField .FieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
128+ )
129+ )
130+ ).build ()
131+ )
132+ .parameters (Map .of (
133+ "timeDistanceWeight" , "0.8" ,
134+ "stringDistanceWeight" , "0.1" ))
135+ .build ();
136+
137+ private static final RecordSimilarityRequest EXPECTED_REQUEST_WITH_UNIVERSE = RecordSimilarityRequest .builder ()
138+ .fields (Map .of (
139+ "dob" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.2 ).build (),
140+ "primaryName" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .NAME ).weight (0.5 ).build (),
141+ "dob2" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.1 ).build (),
142+ "addr" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .ADDRESS ).weight (0.5 ).build ()))
143+ .properties (RecordSimilarityProperties .builder ().threshold (0.7 ).includeExplainInfo (true ).build ())
144+ .records (RecordSimilarityRecords .builder ()
145+ .left (
146+ List .of (
147+ Map .of (
148+ "primaryName" , NameField .FieldedName .builder ()
149+ .text ("Ethan R" ).entityType ("PERSON" )
150+ .language (LanguageCode .ENGLISH )
151+ .languageOfOrigin (LanguageCode .ENGLISH )
152+ .script (ISO15924 .Latn )
153+ .build (),
154+ "dob" , DateField .UnfieldedDate .builder ().date ("1993-04-16" ).build (),
155+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
156+ "addr" , AddressField .UnfieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
157+ ),
158+ Map .of (
159+ "primaryName" , NameField .FieldedName .builder ().text ("Evan R" ).build (),
160+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
161+ )
162+ )
163+ ).right (
164+ List .of (
165+ Map .of (
166+ "primaryName" , NameField .FieldedName .builder ().text ("Seth R" ).language (LanguageCode .ENGLISH ).build (),
167+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
168+ ),
169+ Map .of (
170+ "primaryName" , NameField .UnfieldedName .builder ().text ("Ivan R" ).build (),
171+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build (),
172+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
173+ "addr" , AddressField .FieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
174+ )
175+ )
176+ ).build ()
177+ )
178+ .parameterUniverse ("myUniverse" ).build ();
179+
88180 @ Test
89181 void testDeserialization () throws JsonProcessingException {
90182 final RecordSimilarityRequest request = MAPPER .readValue (EXPECTED_JSON , new TypeReference <>() { });
91183 assertEquals (EXPECTED_REQUEST , request );
184+
185+ final RecordSimilarityRequest requestParams = MAPPER .readValue (EXPECTED_JSON_WITH_PARAMS , new TypeReference <>() { });
186+ assertEquals (EXPECTED_REQUEST_WITH_PARAMS , requestParams );
187+
188+ final RecordSimilarityRequest requestUniverse = MAPPER .readValue (EXPECTED_JSON_WITH_UNIVERSE , new TypeReference <>() { });
189+ assertEquals (EXPECTED_REQUEST_WITH_UNIVERSE , requestUniverse );
92190 }
93191
94192 @ Test
95193 void testSerialization () throws JsonProcessingException {
96194 final JsonNode expectedJson = MAPPER .readTree (EXPECTED_JSON );
97195 final JsonNode actualJson = MAPPER .valueToTree (EXPECTED_REQUEST );
98196 assertEquals (expectedJson , actualJson );
197+
198+ final JsonNode expectedParamJson = MAPPER .readTree (EXPECTED_JSON_WITH_PARAMS );
199+ final JsonNode actualParamJson = MAPPER .valueToTree (EXPECTED_REQUEST_WITH_PARAMS );
200+ assertEquals (expectedParamJson , actualParamJson );
201+
202+ final JsonNode expectedUniverseJson = MAPPER .readTree (EXPECTED_JSON_WITH_UNIVERSE );
203+ final JsonNode actualUniverseJson = MAPPER .valueToTree (EXPECTED_REQUEST_WITH_UNIVERSE );
204+ assertEquals (expectedUniverseJson , actualUniverseJson );
99205 }
100206
101207}
0 commit comments