@Test
public void testRateWithCounterResetWithNoSkipNegativeValuesNInterpolation() {

	long startTime=1*MINUTE, endTime=8*MINUTE;
	RateTransform rateTransform = new RateTransform();
	List<Metric> metrics = new ArrayList<>();
	Metric actualMetric= new Metric("testScope", "testMetric");
	Map<Long, Double> actualDPs = new HashMap<>();
	actualDPs.put(1*MINUTE, 1d);
	actualDPs.put(2*MINUTE, 2d);
	actualDPs.put(3*MINUTE, 3d);
	actualDPs.put(6*MINUTE, 0d);
	actualDPs.put(8*MINUTE, 4d);
	actualMetric.setDatapoints(actualDPs);
	metrics.add(actualMetric);
	List<Metric> expectedMetrics = new ArrayList<>();
	Metric expectedMetric= new Metric("testScope", "testMetric");
	Map<Long, Double> expectedDPs = new HashMap<>();
	expectedDPs.put(2*MINUTE, 1d);
	expectedDPs.put(3*MINUTE, 1d);
	expectedDPs.put(4*MINUTE, -1d);
	expectedDPs.put(5*MINUTE, -1d);
	expectedDPs.put(6*MINUTE, -1d);
	expectedDPs.put(7*MINUTE, 2d);
	expectedDPs.put(8*MINUTE, 2d);
	expectedMetric.setDatapoints(expectedDPs);
	expectedMetrics.add(expectedMetric);
	List<String> constants = Arrays.asList("1m","FALSE","TRUE");
	QueryContext queryContext = _getQueryContext(startTime, endTime);
	List<Metric> actualMetrics = rateTransform.transform(queryContext, metrics,constants);
	assertEquals(expectedMetrics.get(0).getDatapoints(), actualMetrics.get(0).getDatapoints());
}