diff --git a/iTrust/sql/data/hcp_diagnosis_data.sql b/iTrust/sql/data/hcp_diagnosis_data.sql
index 37684d9fb85a272d1c71c97e243d6beced141a43..c37c8e880fa4204088c693723ad7efc1add0ed01 100644
--- a/iTrust/sql/data/hcp_diagnosis_data.sql
+++ b/iTrust/sql/data/hcp_diagnosis_data.sql
@@ -1,4 +1,13 @@
-
+/*-- 27606
+-- 27607
+-- 27606
+-- 27606
+-- 27603
+-- 10001
+-- 10001
+-- 10001
+-- 28803
+-- 59710*/
 
 INSERT INTO officevisits(ID, visitDate, HCPID, notes, PatientID, HospitalID)
 VALUES
@@ -21,7 +30,18 @@ VALUES
 
 (122, '2011-08-25', 9000000000, 'Diagnose Mumps', 2, '1'),
 (123, '2011-09-09', 9000000000, 'Diagnose Mumps', 3, '1'),
-(124, '2011-09-12', 9000000000, 'Diagnose Mumps', 25, '1')
+(124, '2011-09-12', 9000000000, 'Diagnose Mumps', 25, '1'),
+
+(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')  
 
 ON DUPLICATE KEY UPDATE id = id;
 
@@ -46,7 +66,19 @@ VALUES
 
 (122, 122, 72.00),
 (123, 123, 72.00),
-(124, 124, 72.00)
+(124, 124, 72.00),
+
+(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)
+
 ON DUPLICATE KEY UPDATE VisitID = VALUES(VisitID), ICDCode = VALUES(ICDCode);
 
 INSERT INTO labprocedure (PatientMID, LaboratoryProcedureCode, Rights, Status, Commentary, Results, OfficeVisitID, UpdatedDate,
diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java b/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java
index ea119beb4997fa04627d8b4d9303fbf1fe70c72d..31976368a521106b319838b9cae76fa235b6849f 100644
--- a/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java
+++ b/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.lang.IllegalArgumentException;
 
 import junit.framework.TestCase;
 import edu.ncsu.csc.itrust.action.ViewDiagnosisStatisticsAction;
@@ -112,7 +113,61 @@ public class OVDiagnosesTest extends TestCase {
 		//If previous test fails, this test may fail
 		long totalRegionNonsplit = diagDAO.getDiagnosisCounts("487.00", "27607", lower, upper).getRegionStats();
 		assertEquals(totalRegionNonsplit, totalRegion);
-	}
+    }
+    
+    public void testZipSFs() throws Exception {
+        Date lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		Date upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+        DiagnosisStatisticsBean bean = diagDAO.getDiagnosisCounts("26.8", "27606-1234", lower, upper, 5);
+        assertEquals(bean.getZipStats(), bean.getRegionStats());
+        assertEquals(3, bean.getZipStats());
+        
+        lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+        bean = diagDAO.getDiagnosisCounts("26.8", "27607", lower, upper, 4);
+        assertEquals(1, bean.getZipStats());
+        assertEquals(5, bean.getRegionStats());
+
+        lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+        bean = diagDAO.getDiagnosisCounts("26.8", "27603", lower, upper, 3);
+        assertEquals(1, bean.getZipStats());
+        assertEquals(5, bean.getRegionStats());
+
+        lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+        bean = diagDAO.getDiagnosisCounts("26.8", "27606", lower, upper, 2);
+        assertEquals(0, bean.getZipStats());
+        assertEquals(5, bean.getRegionStats());
+
+        lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+        bean = diagDAO.getDiagnosisCounts("26.8", "20000", lower, upper, 1);
+        assertEquals(0, bean.getZipStats());
+        assertEquals(6, bean.getRegionStats());
+
+        lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+        bean = diagDAO.getDiagnosisCounts("26.8", "10001", lower, upper, 0);
+        assertEquals(3, bean.getZipStats());
+        assertEquals(10, bean.getRegionStats());
+    }
+
+    public void testInvalidZipSigFigs() throws Exception {
+        try {
+            Date lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		    Date upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+            DiagnosisStatisticsBean bean = diagDAO.getDiagnosisCounts("26.8", "27606-1234", lower, upper, -1);
+            fail("Expected exception.");
+        } catch (IllegalArgumentException e) { }
+
+        try {
+            Date lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+		    Date upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020");
+            DiagnosisStatisticsBean bean = diagDAO.getDiagnosisCounts("26.8", "27606-1234", lower, upper, 6);
+            fail("Expected exception.");
+        } catch (IllegalArgumentException e) { }
+    }
 	
 	/**
 	 * testMalaria