diff --git a/iTrust/sql/data/hcp_additional_diagnosis_data.sql b/iTrust/sql/data/hcp_additional_diagnosis_data.sql
index 29163d99144e43aa8e334f49d9e05ab5a39c5419..8d20d6cf1032d3953dbf6fb9b3fb918e8b937115 100644
--- a/iTrust/sql/data/hcp_additional_diagnosis_data.sql
+++ b/iTrust/sql/data/hcp_additional_diagnosis_data.sql
@@ -1,29 +1,31 @@
 INSERT INTO officevisits(ID, visitDate, HCPID, notes, PatientID, HospitalID)
 VALUES
-(125, '2020-11-18', 9000000000, 'Diagnose Cataracts', 1, '1'),   
-(126, '2020-11-18', 9000000000, 'Diagnose Cataracts', 2, '1'),   
-(127, '2020-11-18', 9000000000, 'Diagnose Cataracts', 3, '1'),   
-(128, '2020-11-18', 9000000000, 'Diagnose Cataracts', 4, '1'),   
-(129, '2020-11-18', 9000000000, 'Diagnose Cataracts', 21, '1'),  
-(130, '2020-11-18', 9000000000, 'Diagnose Cataracts', 22, '1'),  
-(131, '2020-11-18', 9000000000, 'Diagnose Cataracts', 23, '1'),  
-(132, '2020-11-18', 9000000000, 'Diagnose Cataracts', 24, '1'),  
-(133, '2020-11-18', 9000000000, 'Diagnose Cataracts', 105, '1'), 
-(134, '2020-11-18', 9000000000, 'Diagnose Cataracts', 107, '1')  
+(125, '2020-11-18', 9000000000, 'Diagnose Strep', 1, '1'),   
+(126, '2020-11-18', 9000000000, 'Diagnose Strep', 2, '1'),   
+(127, '2020-11-18', 9000000000, 'Diagnose Strep', 3, '1'),   
+(128, '2020-11-18', 9000000000, 'Diagnose Strep', 4, '1'),   
+(129, '2020-11-18', 9000000000, 'Diagnose Strep', 21, '1'),  
+(130, '2020-11-18', 9000000000, 'Diagnose Strep', 22, '1'),  
+(131, '2020-11-18', 9000000000, 'Diagnose Strep', 23, '1'),  
+(132, '2020-11-18', 9000000000, 'Diagnose Strep', 24, '1'),  
+(133, '2020-11-18', 9000000000, 'Diagnose Strep', 105, '1'), 
+(134, '2020-11-18', 9000000000, 'Diagnose Strep', 107, '1'),
+(135, '2020-11-18', 9000000000, 'Diagnose Strep', 102, '1')
 
 ON DUPLICATE KEY UPDATE id = id;
 
 INSERT INTO ovdiagnosis(ID, VisitID, ICDCode)
 VALUES
-(125, 125, 26.8),
-(126, 126, 26.8),
-(127, 127, 26.8),
-(128, 128, 26.8),
-(129, 129, 26.8),
-(130, 130, 26.8),
-(131, 131, 26.8),
-(132, 132, 26.8),
-(133, 133, 26.8),
-(134, 134, 26.8)
+(125, 125, 34.00),
+(126, 126, 34.00),
+(127, 127, 34.00),
+(128, 128, 34.00),
+(129, 129, 34.00),
+(130, 130, 34.00),
+(131, 131, 34.00),
+(132, 132, 34.00),
+(133, 133, 34.00),
+(134, 134, 34.00),
+(135, 135, 34.00)
 
 ON DUPLICATE KEY UPDATE VisitID = VALUES(VisitID), ICDCode = VALUES(ICDCode);
diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java b/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java
index a23d9f0d90422ced565e1f011d6a90e471b212a6..358416883275550bda3ae3573204bc2defee1a35 100644
--- a/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java
+++ b/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java
@@ -92,47 +92,47 @@ public class ViewDiagnosisStatisticsActionTest extends TestCase {
 		gen.malaria_epidemic1();
 		assertFalse(action.isMalariaEpidemic("11/02/" + thisYear, "27606", "110"));
 		assertTrue(action.isMalariaEpidemic("11/16/" + thisYear, "27606", "110"));
-    }
-    
-    public void testIsMalariaEpidemicRolling() throws Exception {
-        int year = thisYear-20;
-        gen.malaria_epidemic2();
-        assertFalse(action.isMalariaEpidemic("11/01/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/02/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/03/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/04/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/05/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/06/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/07/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/08/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/09/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/10/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/11/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/12/" + year, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("11/13/" + year, "27606", "110"));
-        assertTrue(action.isMalariaEpidemic("11/14/" + year, "27606", "110"));
-        assertTrue(action.isMalariaEpidemic("11/15/" + year, "27606", "110"));
-    }
-
-    public void testIsMalariaEpidemicEdge() throws Exception {
-        int year = thisYear - 20;
-        gen.malaria_epidemic3();
-        // Exactly 100 percentile
-        assertFalse(action.isMalariaEpidemic("11/02/" + thisYear, "27606", "110"));
-
-        // Threshold shouldn't matter if there is no history
-        assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "110"));
-        assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "100000000"));
-
-        // Date/zip with 0 cases should be false
-        assertFalse(action.isMalariaEpidemic("02/02/" + thisYear, "27606", "110"));
-        assertFalse(action.isMalariaEpidemic("10/10/" + thisYear, "99999", "110"));
-    }
-
-    public void testIsMalariaEpidemicNone() throws Exception {
-        gen.malaria_epidemic1();
-        assertFalse(action.isMalariaEpidemic("06/02/2010", "38201", "110"));
-    }
+	}
+	
+	public void testIsMalariaEpidemicRolling() throws Exception {
+		int year = thisYear-20;
+		gen.malaria_epidemic2();
+		assertFalse(action.isMalariaEpidemic("11/01/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/02/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/03/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/04/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/05/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/06/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/07/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/08/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/09/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/10/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/11/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/12/" + year, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("11/13/" + year, "27606", "110"));
+		assertTrue(action.isMalariaEpidemic("11/14/" + year, "27606", "110"));
+		assertTrue(action.isMalariaEpidemic("11/15/" + year, "27606", "110"));
+	}
+
+	public void testIsMalariaEpidemicEdge() throws Exception {
+		int year = thisYear - 20;
+		gen.malaria_epidemic3();
+		// Exactly 100 percentile
+		assertFalse(action.isMalariaEpidemic("11/02/" + thisYear, "27606", "110"));
+
+		// Threshold shouldn't matter if there is no history
+		assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "110"));
+		assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "100000000"));
+
+		// Date/zip with 0 cases should be false
+		assertFalse(action.isMalariaEpidemic("02/02/" + thisYear, "27606", "110"));
+		assertFalse(action.isMalariaEpidemic("10/10/" + thisYear, "99999", "110"));
+	}
+
+	public void testIsMalariaEpidemicNone() throws Exception {
+		gen.malaria_epidemic1();
+		assertFalse(action.isMalariaEpidemic("06/02/2010", "38201", "110"));
+	}
 	
 	public void testIsFluEpidemic() throws Exception {
 		gen.influenza_epidemic();
@@ -171,4 +171,74 @@ public class ViewDiagnosisStatisticsActionTest extends TestCase {
 			fail("DBException thrown");
 		}
 	}
+	
+	public void testGetDiagnosisTrendsBasic() throws Exception {
+		gen.hcp_additional_diagnosis_data();
+		List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("03/11/2007", "79.10", "27607");
+
+		assertEquals(8, trends.size());
+		assertEquals(2, trends.get(0).getRegionStats());
+		assertEquals(2, trends.get(0).getStateStats());
+		assertEquals(1, trends.get(0).getZipStats());
+	}
+
+	public void testGetDiagnosisTrendsRolling() throws Exception {
+		gen.hcp_additional_diagnosis_data();
+		List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("03/16/2007", "79.10", "27607");
+
+		assertEquals(2, trends.get(0).getRegionStats());
+		assertEquals(0, trends.get(1).getRegionStats());
+		assertEquals(0, trends.get(2).getRegionStats());
+
+		trends = action.getDiagnosisTrends("03/17/2007", "79.10", "27607");
+
+		assertEquals(1, trends.get(0).getRegionStats());
+		assertEquals(1, trends.get(1).getRegionStats());
+		assertEquals(0, trends.get(2).getRegionStats());
+
+		trends = action.getDiagnosisTrends("03/18/2007", "79.10", "27607");
+		assertEquals(0, trends.get(0).getRegionStats());
+		assertEquals(2, trends.get(1).getRegionStats());
+		assertEquals(0, trends.get(2).getRegionStats());
+	}
+
+	public void testGetDiagnosisTrendsRegionSize() throws Exception {
+		gen.hcp_additional_diagnosis_data();
+		List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("11/19/2020", "34.00", "27607");
+
+		assertEquals(1, trends.get(0).getZipStats());
+		assertEquals(5, trends.get(0).getRegionStats());
+		assertEquals(6, trends.get(0).getStateStats());
+	}
+
+	public void testGetDiagnosisTrendsEdge() throws Exception {
+		List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("12/18/2010", "79.10", "27607");
+
+		for (DiagnosisStatisticsBean b : trends) {
+			assertEquals(0, b.getZipStats());
+			assertEquals(0, b.getRegionStats());
+			assertEquals(0, b.getStateStats());
+		}
+	}
+
+	public void testGetDiagnosisTrendsBadDate() throws Exception {
+		try {
+			action.getDiagnosisTrends("asdf", "79.10", "27607");
+			fail("Expected exception.");
+		} catch (FormValidationException e) { }
+	}
+
+	public void testGetDiagnosisTrendsBadZip() throws Exception {
+		try {
+			action.getDiagnosisTrends("03/20/2007", "79.10", "123456");
+			fail("Expected exception.");
+		} catch (FormValidationException e) { }
+	}
+
+	public void testGetDiagnosisTrendsBadIcdCode() throws Exception {
+		try {
+			action.getDiagnosisTrends("03/20/2007", "000.000", "12345");
+			fail("Expected exception.");
+		} catch (FormValidationException e) { }
+	}
 }