@@ -43,12 +43,15 @@ 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,\" parameters\" :{\" timeDistanceWeight\" :\" 0.8\" ,\" stringDistanceWeight\" :\" 0.1\" }},\" 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\" }}]}}" ;
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,\" parameterUniverse\" :\" myParameterUniverse\" },\" 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\" }}]}}" ;
48+
4649 private static final RecordSimilarityRequest EXPECTED_REQUEST = RecordSimilarityRequest .builder ()
4750 .fields (Map .of (
48- "primaryName" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .NAME ).weight (0.5 ).build (),
49- "dob" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.2 ).build (),
51+ "addr" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .ADDRESS ).weight (0.5 ).build (),
5052 "dob2" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.1 ).build (),
51- "addr" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .ADDRESS ).weight (0.5 ).build ()))
53+ "primaryName" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .NAME ).weight (0.5 ).build (),
54+ "dob" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.2 ).build ()))
5255 .properties (RecordSimilarityProperties .builder ().threshold (0.7 ).includeExplainInfo (true ).build ())
5356 .records (RecordSimilarityRecords .builder ()
5457 .left (
@@ -85,17 +88,128 @@ 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 ()
98+ .threshold (0.7 )
99+ .includeExplainInfo (true )
100+ .parameters (
101+ Map .of (
102+ "timeDistanceWeight" , "0.8" ,
103+ "stringDistanceWeight" , "0.1"
104+ )
105+ )
106+ .build ())
107+ .records (RecordSimilarityRecords .builder ()
108+ .left (
109+ List .of (
110+ Map .of (
111+ "primaryName" , NameField .FieldedName .builder ()
112+ .text ("Ethan R" ).entityType ("PERSON" )
113+ .language (LanguageCode .ENGLISH )
114+ .languageOfOrigin (LanguageCode .ENGLISH )
115+ .script (ISO15924 .Latn )
116+ .build (),
117+ "dob" , DateField .UnfieldedDate .builder ().date ("1993-04-16" ).build (),
118+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
119+ "addr" , AddressField .UnfieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
120+ ),
121+ Map .of (
122+ "primaryName" , NameField .FieldedName .builder ().text ("Evan R" ).build (),
123+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
124+ )
125+ )
126+ ).right (
127+ List .of (
128+ Map .of (
129+ "primaryName" , NameField .FieldedName .builder ().text ("Seth R" ).language (LanguageCode .ENGLISH ).build (),
130+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
131+ ),
132+ Map .of (
133+ "primaryName" , NameField .UnfieldedName .builder ().text ("Ivan R" ).build (),
134+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build (),
135+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
136+ "addr" , AddressField .FieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
137+ )
138+ )
139+ ).build ()
140+ ).build ();
141+
142+ private static final RecordSimilarityRequest EXPECTED_REQUEST_WITH_UNIVERSE = RecordSimilarityRequest .builder ()
143+ .fields (Map .of (
144+ "dob" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.2 ).build (),
145+ "primaryName" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .NAME ).weight (0.5 ).build (),
146+ "dob2" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .DATE ).weight (0.1 ).build (),
147+ "addr" , RecordSimilarityFieldInfo .builder ().type (RecordFieldType .ADDRESS ).weight (0.5 ).build ()))
148+ .properties (RecordSimilarityProperties .builder ()
149+ .threshold (0.7 )
150+ .includeExplainInfo (true )
151+ .parameterUniverse ("myParameterUniverse" )
152+ .build ())
153+ .records (RecordSimilarityRecords .builder ()
154+ .left (
155+ List .of (
156+ Map .of (
157+ "primaryName" , NameField .FieldedName .builder ()
158+ .text ("Ethan R" ).entityType ("PERSON" )
159+ .language (LanguageCode .ENGLISH )
160+ .languageOfOrigin (LanguageCode .ENGLISH )
161+ .script (ISO15924 .Latn )
162+ .build (),
163+ "dob" , DateField .UnfieldedDate .builder ().date ("1993-04-16" ).build (),
164+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
165+ "addr" , AddressField .UnfieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
166+ ),
167+ Map .of (
168+ "primaryName" , NameField .FieldedName .builder ().text ("Evan R" ).build (),
169+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
170+ )
171+ )
172+ ).right (
173+ List .of (
174+ Map .of (
175+ "primaryName" , NameField .FieldedName .builder ().text ("Seth R" ).language (LanguageCode .ENGLISH ).build (),
176+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build ()
177+ ),
178+ Map .of (
179+ "primaryName" , NameField .UnfieldedName .builder ().text ("Ivan R" ).build (),
180+ "dob" , DateField .FieldedDate .builder ().date ("1993-04-16" ).build (),
181+ "dob2" , DateField .FieldedDate .builder ().date ("1993/04/16" ).build (),
182+ "addr" , AddressField .FieldedAddress .builder ().address ("123 Roadlane Ave" ).build ()
183+ )
184+ )
185+ ).build ()
186+ ).build ();
187+
88188 @ Test
89189 void testDeserialization () throws JsonProcessingException {
90190 final RecordSimilarityRequest request = MAPPER .readValue (EXPECTED_JSON , new TypeReference <>() { });
91191 assertEquals (EXPECTED_REQUEST , request );
192+
193+ final RecordSimilarityRequest requestParams = MAPPER .readValue (EXPECTED_JSON_WITH_PARAMS , new TypeReference <>() { });
194+ assertEquals (EXPECTED_REQUEST_WITH_PARAMS , requestParams );
195+
196+ final RecordSimilarityRequest requestUniverse = MAPPER .readValue (EXPECTED_JSON_WITH_UNIVERSE , new TypeReference <>() { });
197+ assertEquals (EXPECTED_REQUEST_WITH_UNIVERSE , requestUniverse );
92198 }
93199
94200 @ Test
95201 void testSerialization () throws JsonProcessingException {
96202 final JsonNode expectedJson = MAPPER .readTree (EXPECTED_JSON );
97203 final JsonNode actualJson = MAPPER .valueToTree (EXPECTED_REQUEST );
98204 assertEquals (expectedJson , actualJson );
205+
206+ final JsonNode expectedParamJson = MAPPER .readTree (EXPECTED_JSON_WITH_PARAMS );
207+ final JsonNode actualParamJson = MAPPER .valueToTree (EXPECTED_REQUEST_WITH_PARAMS );
208+ assertEquals (expectedParamJson , actualParamJson );
209+
210+ final JsonNode expectedUniverseJson = MAPPER .readTree (EXPECTED_JSON_WITH_UNIVERSE );
211+ final JsonNode actualUniverseJson = MAPPER .valueToTree (EXPECTED_REQUEST_WITH_UNIVERSE );
212+ assertEquals (expectedUniverseJson , actualUniverseJson );
99213 }
100214
101215}
0 commit comments