public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> filterDict = serializer.Deserialize<Dictionary<string, object>>(reader); Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(filterDict.First().Value.ToString()); ShingleTokenFilter filter = new ShingleTokenFilter(filterDict.First().Key); TokenFilterBase.Deserialize(filter, fieldDict); filter.MinimumSize = fieldDict.GetInt64(_MINIMUM_SHINGLE_SIZE, ShingleTokenFilter._MINIMUM_SIZE_DEFAULT); filter.MaximumSize = fieldDict.GetInt64(_MAXIMUM_SHINGLE_SIZE, ShingleTokenFilter._MAXIMUM_SIZE_DEFAULT); filter.OutputUnigrams = fieldDict.GetBool(_OUTPUT_UNIGRAMS, ShingleTokenFilter._OUTPUT_UNIGRAMS_DEFAULT); filter.OutputUnigramsIfNoShingles = fieldDict.GetBool(_OUTPUT_UNIGRAMS_IF_NO_SHINGLES, ShingleTokenFilter._OUTPUT_UNIGRAMS_IF_NO_SHINGLES_DEFAULT); filter.TokenSeparator = fieldDict.GetString(_TOKEN_SEPARATOR, ShingleTokenFilter._TOKEN_SEPARATOR_DEFAULT); filter.FillerToken = fieldDict.GetString(_FILLER_TOKEN, ShingleTokenFilter._FILLER_TOKEN_DEFAULT); return filter; }
public void PASS_Serialize() { ShingleTokenFilter filter = new ShingleTokenFilter("name") { Version = 2.4, FillerToken = "a", MaximumSize = 25, MinimumSize = 4, OutputUnigrams = false, OutputUnigramsIfNoShingles = true, TokenSeparator = "-" }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"shingle\",\"version\":2.4,\"min_shingle_size\":4,\"max_shingle_size\":25,\"output_unigrams\":false,\"output_unigrams_if_no_shingles\":true,\"token_separator\":\"-\",\"filler_token\":\"a\"}}"; Assert.AreEqual(expectedJson, json); }
public void PASS_Create() { ShingleTokenFilter filter = new ShingleTokenFilter("name") { Version = 2.4, FillerToken = "a", MaximumSize = 25, MinimumSize = 4, OutputUnigrams = false, OutputUnigramsIfNoShingles = true, TokenSeparator = "-" }; Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual(2.4, filter.Version); Assert.AreEqual("a", filter.FillerToken); Assert.AreEqual(25, filter.MaximumSize); Assert.AreEqual(4, filter.MinimumSize); Assert.AreEqual(false, filter.OutputUnigrams); Assert.AreEqual(true, filter.OutputUnigramsIfNoShingles); Assert.AreEqual("-", filter.TokenSeparator); }