001 package org.hackystat.telemetry.analyzer.function.impl; 002 003 import junit.framework.TestCase; 004 005 import org.hackystat.telemetry.analyzer.function.TelemetryFunctionManager; 006 import org.hackystat.telemetry.analyzer.model.TelemetryDataPoint; 007 import org.hackystat.telemetry.analyzer.model.TelemetryStream; 008 import org.hackystat.telemetry.analyzer.model.TelemetryStreamCollection; 009 import org.hackystat.sensorbase.resource.projects.jaxb.Project; 010 import org.hackystat.utilities.time.interval.DayInterval; 011 import org.hackystat.utilities.time.period.Day; 012 013 /** 014 * Test suite for <code>FilterZeroFunction</code>. 015 * 016 * @author (Cedric) Qin ZHANG 017 */ 018 public class TestFilterZeroFunction extends TestCase { 019 020 private TelemetryFunctionManager manager = TelemetryFunctionManager.getInstance(); 021 private String projectName = "TestFilterZeroFunction"; 022 private Project project; 023 private Day startDay; 024 private DayInterval interval; 025 026 /** 027 * Sets up this test case. 028 * @throws Exception If test case cannot be set up. 029 */ 030 @Override 031 protected void setUp() throws Exception { 032 033 //this.project = ProjectManager.getInstance().createTestProjectClientSide(projectName); 034 this.project = new Project(); 035 this.project.setName(projectName); 036 this.startDay = Day.getInstance("01-Jan-2004"); 037 this.interval = new DayInterval(this.startDay, this.startDay.inc(1)); 038 } 039 040 /** 041 * Tears down this test case. 042 * @throws Exception If tear down failed. 043 */ 044 @Override 045 protected void tearDown() throws Exception { 046 //ProjectManager.getInstance().deleteProject(this.projectName); 047 } 048 049 /** 050 * Tests in GE mode. 051 * @throws Exception If test fails. 052 */ 053 public void testModeGE() throws Exception { 054 TelemetryStreamCollection input 055 = new TelemetryStreamCollection("test", this.project, this.interval); 056 TelemetryStream inputStream1 = new TelemetryStream("test1"); //remain 057 inputStream1.addDataPoint(new TelemetryDataPoint(this.startDay, Integer.valueOf(1))); 058 inputStream1.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), Integer.valueOf(2))); 059 input.add(inputStream1); 060 TelemetryStream inputStream2 = new TelemetryStream("test2"); 061 inputStream2.addDataPoint(new TelemetryDataPoint(this.startDay, Integer.valueOf(0))); 062 inputStream2.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), Integer.valueOf(0))); 063 input.add(inputStream2); 064 TelemetryStream inputStream3 = new TelemetryStream("test3"); 065 inputStream3.addDataPoint(new TelemetryDataPoint(this.startDay, null)); 066 inputStream3.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), null)); 067 input.add(inputStream3); 068 TelemetryStream inputStream4 = new TelemetryStream("test4"); 069 inputStream4.addDataPoint(new TelemetryDataPoint(this.startDay, new Double(0))); 070 inputStream4.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), new Double(0))); 071 input.add(inputStream4); 072 TelemetryStream inputStream5 = new TelemetryStream("test5"); 073 inputStream5.addDataPoint(new TelemetryDataPoint(this.startDay, new Float(0))); 074 inputStream5.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), new Float(0))); 075 input.add(inputStream5); 076 TelemetryStream inputStream6 = new TelemetryStream("test6"); //remain 077 inputStream6.addDataPoint(new TelemetryDataPoint(this.startDay, new Double(Double.NaN))); 078 inputStream6.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), new Double(Double.NaN))); 079 input.add(inputStream6); 080 TelemetryStream inputStream7 = new TelemetryStream("test7"); //remain 081 inputStream7.addDataPoint(new TelemetryDataPoint(this.startDay, new Double(2.3))); 082 inputStream7.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), new Double(0))); 083 input.add(inputStream7); 084 TelemetryStream inputStream8 = new TelemetryStream("test8"); //remain 085 inputStream8.addDataPoint(new TelemetryDataPoint(this.startDay, new Double(2.3))); 086 inputStream8.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), null)); 087 input.add(inputStream8); 088 TelemetryStream inputStream9 = new TelemetryStream("test9"); //remain 089 inputStream9.addDataPoint(new TelemetryDataPoint(this.startDay, Integer.valueOf(2))); 090 inputStream9.addDataPoint(new TelemetryDataPoint(this.startDay.inc(1), null)); 091 input.add(inputStream9); 092 093 TelemetryStreamCollection output 094 = (TelemetryStreamCollection) this.manager.compute("FilterZero", new Object[]{input}); 095 096 assertEquals("test", output.getName()); 097 assertSame(this.project, output.getProject()); 098 assertSame(this.interval, output.getInterval()); 099 assertEquals(5, output.getTelemetryStreams().size()); 100 assertSame(inputStream1, output.get("test1")); 101 assertSame(inputStream6, output.get("test6")); 102 assertSame(inputStream7, output.get("test7")); 103 assertSame(inputStream8, output.get("test8")); 104 assertSame(inputStream9, output.get("test9")); 105 } 106 }