/**
* Copyright (C) 2012-14 graphene developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.epics.graphene.rrdtool;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.epics.util.array.ListDouble;
import org.epics.util.time.Timestamp;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
/**
*
* @author carcassi
*/
public class RrdToolOutputParserTest {
public RrdToolOutputParserTest() {
}
@Test
public void parse1() {
BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("rrdtool1.out")));
RrdToolOutputParser instance = new RrdToolOutputParser();
TimeSeriesMulti result = instance.parse(reader);
assertThat(result.getTime().size(), equalTo(241));
assertThat(result.getValues().size(), equalTo(1));
ListDouble values = result.getValues().get("load_1min");
assertThat(values.size(), equalTo(241));
assertThat(result.getTime().get(0), equalTo(Timestamp.of(1349877960, 0)));
assertThat(values.getDouble(0), equalTo(Double.NaN));
assertThat(result.getTime().get(150), equalTo(Timestamp.of(1349931960, 0)));
assertThat(values.getDouble(150), equalTo(1.1737083333e+00));
assertThat(result.getTime().get(240), equalTo(Timestamp.of(1349964360, 0)));
assertThat(values.getDouble(240), equalTo(Double.NaN));
}
@Test
public void parse2() {
BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("rrdtool2.out")));
RrdToolOutputParser instance = new RrdToolOutputParser();
TimeSeriesMulti result = instance.parse(reader);
assertThat(result.getTime().size(), equalTo(241));
assertThat(result.getValues().size(), equalTo(18));
assertThat(result.getValues().keySet(), equalTo((Set<String>) new HashSet<String>(
Arrays.asList("Setpoint", "Fan1cfm", "Temp1", "Temp3", "Fan2Rpm", "TempOvrSet", "Fan2cfm", "Totalcfm", "Fan1Status", "Temp2", "Fan1Rpm", "Fan2Status", "Fan3cfm", "Fan3Rpm", "Fan3Status", "Fan4cfm", "Fan4Rpm", "Fan4Status"))));
ListDouble values = result.getValues().get("Temp1");
assertThat(values.size(), equalTo(241));
assertThat(result.getTime().get(0), equalTo(Timestamp.of(1355416920, 0)));
assertThat(values.getDouble(0), equalTo(9.2500000000e+01));
assertThat(result.getTime().get(150), equalTo(Timestamp.of(1355470920, 0)));
assertThat(values.getDouble(150), equalTo(9.1000000000e+01));
assertThat(result.getTime().get(240), equalTo(Timestamp.of(1355503320, 0)));
assertThat(values.getDouble(240), equalTo(Double.NaN));
}
}