package com.linkedin.thirdeye.anomalydetection.datafilter; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.linkedin.thirdeye.api.DimensionMap; import java.util.HashMap; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; import org.testng.Assert; import org.testng.annotations.Test; public class AverageThresholdDataFilterTest { @Test public void testCreate() { Map<String, String> dataFilter = new HashMap<>(); dataFilter.put(DataFilterFactory.FILTER_TYPE_KEY, "aVerAge_THrEShOLd"); dataFilter.put(AverageThresholdDataFilter.METRIC_NAME_KEY, "metricName"); dataFilter.put(AverageThresholdDataFilter.THRESHOLD_KEY, "1000"); dataFilter.put(AverageThresholdDataFilter.MIN_LIVE_ZONE_KEY, "100"); NavigableMap<DimensionMap, Double> overrideThreshold = new TreeMap<>(); DimensionMap dimensionMap = new DimensionMap(); dimensionMap.put("K1", "V1"); overrideThreshold.put(dimensionMap, 350d); DimensionMap dimensionMap2 = new DimensionMap(); dimensionMap2.put("K1", "V2"); overrideThreshold.put(dimensionMap2, 350d); try { ObjectMapper OBJECT_MAPPER = new ObjectMapper(); String writeValueAsString = OBJECT_MAPPER.writeValueAsString(overrideThreshold); dataFilter.put(AverageThresholdDataFilter.OVERRIDE_THRESHOLD_KEY, writeValueAsString); AverageThresholdDataFilter averageThresholdDataFilter = new AverageThresholdDataFilter(); averageThresholdDataFilter.setParameters(dataFilter); NavigableMap<DimensionMap, Double> overrideThresholdMap = averageThresholdDataFilter.getOverrideThreshold(); Assert.assertEquals(overrideThresholdMap.get(dimensionMap), overrideThreshold.get(dimensionMap)); } catch (JsonProcessingException e) { e.printStackTrace(); Assert.fail(); } } }