@Test public void testGetAutoPlantingDate_machakos() throws IOException, Exception { URL test_resource = this.getClass().getResource("/machakos_wth_only.json"); String line; String startDate = "01-15"; String endDate = "02-28"; String accRainAmt = "9.0"; String dayNum = "6"; String expected_1 = "19800124"; String expected_2 = "19810218"; int expected_3 = 3; String acctual_1 = ""; String acctual_2 = ""; int acctual_3 = 0; BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(test_resource.getPath()))); if ((line = br.readLine()) != null) { HashMap<String, Object> data = JSONAdapter.fromJSON(line); data.put("exp_dur", "3"); HashMap<String, ArrayList<String>> results = ExperimentHelper.getAutoPlantingDate(data, startDate, endDate, accRainAmt, dayNum); acctual_1 = results.get("pdate").get(0); acctual_2 = results.get("pdate").get(1); acctual_3 = results.get("pdate").size(); log.info("Results: {}", results); } assertEquals("getAutoPlantingDate: normal case", expected_1, acctual_1); assertEquals("getAutoPlantingDate: copy case", expected_2, acctual_2); assertEquals("getAutoPlantingDate: no date find case", expected_3, acctual_3); }
@Test public void testGetAutoPlantingDate() throws IOException, Exception { String line; String startDate = "01-15"; String endDate = "02-28"; String accRainAmt = "25"; String dayNum = "4"; String expected_1 = "19820203"; int expected_2 = 2; // 5 standard events + 1 new planting event String acctual_1 = ""; int acctual_2 = 0; URL test_resource = this.getClass().getResource("/auto_plant_single_year_test.json"); ArrayList<Map<String, String>> events = new ArrayList<Map<String, String>>(); HashMap<String, ArrayList<String>> results = new HashMap<String, ArrayList<String>>(); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(test_resource.getPath()))); if ((line = br.readLine()) != null) { HashMap<String, Object> data = JSONAdapter.fromJSON(line); // Map<String, Object> expData = getRawPackageContents(data, "experiments").get(0); // Map<String, Object> expData = (Map)((ArrayList) data.get("experiments")).get(0); data.put("exp_dur", "2"); results = ExperimentHelper.getAutoPlantingDate(data, startDate, endDate, accRainAmt, dayNum); // Map<String, ArrayList> mgnData = (Map) data.get("results"); // events = mgnData.get("events"); // acctual_1 = results.get(0); } log.info("Results: {}", results); assertEquals("getAutoPlantingDate: normal case", expected_1, results.get("pdate").get(0)); assertEquals("getAutoPlantingDate: no date find case", expected_2, results.get("pdate").size()); }
@Test @Ignore public void testGetAutoPlantingDate_oneYear() throws IOException, Exception { String line; String startDate = "03-01"; String endDate = "04-01"; String accRainAmt = "9.0"; String dayNum = "6"; String expected_1 = "19990310"; // TODO int expected_2 = 3; String acctual_1 = ""; int acctual_2 = 0; URL test_resource = null; BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(test_resource.getPath()))); if ((line = br.readLine()) != null) { HashMap<String, ArrayList<Map>> data = new LinkedHashMap<String, ArrayList<Map>>(); Map<String, Object> expData = JSONAdapter.fromJSON(line); data.put("experiments", new ArrayList()); data.put("weathers", new ArrayList()); data.get("experiments").add(expData); data.get("weathers").add((Map) expData.get("weather")); expData.put("sc_year", "1982"); ExperimentHelper.getAutoPlantingDate(data, startDate, endDate, accRainAmt, dayNum); Map<String, ArrayList> mgnData = (Map) expData.get("management"); ArrayList<Map<String, String>> events = mgnData.get("events"); acctual_1 = events.get(0).get("date"); acctual_2 = events.size(); } assertEquals("getAutoPlantingDate: normal case", expected_1, acctual_1); assertEquals("getAutoPlantingDate: no date find case", expected_2, acctual_2); }
@Test public void testGetAutoFillPlantingDate_machakos_lastDate() throws IOException, Exception { log.debug("== testGetAutoFillPlantingDate_machakos_lastDate() == Start"); URL test_resource = this.getClass().getResource("/machakos_wth_only.json"); String line; String startDate = "01-15"; String endDate = "02-28"; String accRainAmt = "50.0"; String dayNum = "6"; String expected_1 = "19810228"; int expected_3 = 1; String acctual_1 = ""; int acctual_3 = 0; BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(test_resource.getPath()))); if ((line = br.readLine()) != null) { HashMap<String, Object> data = JSONAdapter.fromJSON(line); AcePathfinderUtil.insertValue(data, "crid", "MAZ"); data.put("sc_year", "1981"); HashMap<String, ArrayList<String>> results = ExperimentHelper.getAutoFillPlantingDate(data, startDate, endDate, accRainAmt, dayNum); acctual_1 = results.get("pdate").get(0); acctual_3 = results.get("pdate").size(); log.info("Results: {}", results); } assertEquals("getAutoFillPlantingDate: normal case", expected_1, acctual_1); assertEquals("getAutoFillPlantingDate: no date find case", expected_3, acctual_3); log.debug("== testGetAutoFillPlantingDate_machakos_lastDate() == End"); }
@Test public void testGetAutoIrrigationDate_machakos() throws IOException, Exception { log.debug("== testGetAutoIrrigationDate_machakos() Test Start =="); URL test_resource = this.getClass().getResource("/machakos.json"); String line; String[] expected = {"19990510", "19990521", "19990607", "19990619"}; // PDATE = 19990415 String baseTemp = "5"; String irrNum = "4"; String[] gddArr = {"400", "160", "240", "180"}; String[] irvalArr = {"30", "50", "40", "20"}; BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(test_resource.getPath()))); if ((line = br.readLine()) != null) { HashMap<String, Object> data = JSONAdapter.fromJSON(line); ArrayList<HashMap<String, String>> results = ExperimentHelper.getAutoIrrigationEvent(data, irrNum, baseTemp, gddArr, irvalArr); log.info("Results: {}", results); assertEquals( "The generated irrigation events is not enough", expected.length, results.size()); for (int i = 0; i < expected.length; i++) { assertEquals( "The calculated irrigation date is not match with expected date for " + i, expected[i], getValueOr(results.get(i), "date", "")); } } }
@Test public void testGetOMDistribution2() throws IOException, Exception { log.debug("== testGetOMDistribution2() Test Start =="); String offset = "-7"; String omcd = "RE003"; String omc2n = "8.3"; String omdep = "5"; String ominp = "50"; String dmr = "2.5"; Map expected_1 = new HashMap(); expected_1.put("event", "organic_matter"); expected_1.put("date", "19990408"); expected_1.put("omcd", "RE003"); expected_1.put("omamt", "1000"); expected_1.put("omc2n", "8.3"); expected_1.put("omdep", "5"); expected_1.put("ominp", "50"); expected_1.put("omn%", "4.82"); Map acctual_1; HashMap<String, Object> data = new HashMap<String, Object>(); AcePathfinderUtil.insertValue(data, "pdate", "19990415"); AcePathfinderUtil.insertValue(data, "om_tot", "1000"); log.debug((String) data.get("om_tot")); ArrayList<HashMap<String, String>> events = ExperimentHelper.getOMDistribution(data, offset, omcd, omc2n, omdep, ominp, dmr); acctual_1 = events.get(0); assertEquals("getRootDistribution: om app 2", expected_1, acctual_1); log.info("getOMDistribution output 2: {}", data.toString()); log.debug("== testGetOMDistribution2() Test End =="); }
@Test public void testGetOMDistribution_NoOMData() throws IOException, Exception { log.debug("== testGetOMDistribution_NoOMData() Test Start =="); String offset = "-7"; String omcd = "RE003"; String omc2n = "8.3"; String omdep = "5"; String ominp = "50"; String dmr = "2.5"; HashMap<String, Object> data = new HashMap<String, Object>(); AcePathfinderUtil.insertValue(data, "pdate", "19990415"); ArrayList<HashMap<String, String>> events = ExperimentHelper.getOMDistribution(data, offset, omcd, omc2n, omdep, ominp, dmr); // try { // assertEquals("getRootDistribution: om no data", 1, events.size()); // } catch (Error e) { // log.error(e.getMessage()); // } assertEquals("getRootDistribution: om no data", 0, events.size()); log.info("getOMDistribution output: {}", data.toString()); log.debug("== testGetOMDistribution_NoOMData() Test End =="); }
@Test @Ignore public void testGetAutoPlantingDate_machakos_scYear() throws IOException, Exception { String line; String startDate = "01-15"; String endDate = "02-28"; String accRainAmt = "9.0"; String dayNum = "6"; String expected_1 = "19830214"; String expected_2 = "19840131"; String expected_3 = "19850202"; int expected_99 = 3; String acctual_1 = ""; String acctual_2 = ""; String acctual_3 = ""; int acctual_99 = 0; URL test_resource = this.getClass().getResource("/machakos_wth_only.json"); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(test_resource.getPath()))); if ((line = br.readLine()) != null) { HashMap<String, Object> data = JSONAdapter.fromJSON(line); data.put("exp_dur", "3"); data.put("sc_year", "1983"); HashMap<String, ArrayList<String>> result = ExperimentHelper.getAutoPlantingDate(data, startDate, endDate, accRainAmt, dayNum); Map<String, ArrayList> mgnData = (Map) data.get("management"); ArrayList<Map<String, String>> events = mgnData.get("events"); acctual_1 = events.get(0).get("date"); acctual_2 = events.get(1).get("date"); acctual_3 = events.get(2).get("date"); acctual_99 = events.size(); } assertEquals( "getAutoPlantingDate: normal 1st year case with start year", expected_1, acctual_1); assertEquals( "getAutoPlantingDate: normal 2nd year case with start year", expected_2, acctual_2); assertEquals( "getAutoPlantingDate: normal 3rd year case with start year", expected_3, acctual_3); assertEquals("getAutoPlantingDate: all year with auto-planting case", expected_99, acctual_99); }
@Test public void testGetOMDistribution() throws IOException, Exception { log.debug("== testGetOMDistribution() Test Start =="); String line; String offset = "-7"; String omcd = "RE003"; String omc2n = "8.3"; String omdep = "5"; String ominp = "50"; String dmr = "2.5"; // planting data is 19990415 // fen_tot is 110 Map expected_1 = new HashMap(); expected_1.put("event", "organic_matter"); expected_1.put("date", "19990408"); expected_1.put("omcd", "RE003"); expected_1.put("omamt", "1000"); expected_1.put("omc2n", "8.3"); expected_1.put("omdep", "5"); expected_1.put("ominp", "50"); expected_1.put("omn%", "4.82"); Map acctual_1; // BufferedReader br = new BufferedReader( // new InputStreamReader( // new FileInputStream(resource2.getPath()))); // if ((line = br.readLine()) != null) { // HashMap<String, ArrayList<Map>> data = new LinkedHashMap<String, ArrayList<Map>>(); // Map<String, Object> expData = JSONAdapter.fromJSON(line); // data.put("experiments", new ArrayList()); // data.put("weathers", new ArrayList()); // data.get("experiments").add(expData); // data.get("weathers").add((Map) expData.get("weather")); // expData.put("omamt", "1000"); // Map omEvent = new LinkedHashMap(); // omEvent.put("event", "organic-materials"); // omEvent.put("date", "19990414"); HashMap<String, Object> data = new HashMap<String, Object>(); AcePathfinderUtil.insertValue(data, "pdate", "19990415"); AcePathfinderUtil.insertValue(data, "omamt", "1000"); ArrayList<HashMap<String, String>> events = ExperimentHelper.getOMDistribution(data, offset, omcd, omc2n, omdep, ominp, dmr); acctual_1 = events.get(0); // } // try { // assertEquals("getRootDistribution: om app 1", expected_1, acctual_1); // } catch (Error e) { // log.error(e.getMessage()); // } assertEquals("getRootDistribution: om app 1", expected_1, acctual_1); log.info("getOMDistribution output: {}", data.toString()); log.debug("== testGetOMDistribution() Test End =="); }
@Test public void testGetPaddyIrrigation() throws IOException, Exception { log.debug("== testGetPaddyIrrigation() Test Start =="); String num = "3"; String percRate = "2"; String dept = "150"; String[] offsets = {"-3", "4", "11"}; String[] maxVals = {"20", "30", "50"}; String[] minVals = {"5", "10", "15"}; // planting data is 19990415 HashMap expected = new HashMap(); AcePathfinderUtil.insertValue(expected, "idate", "19990412"); AcePathfinderUtil.insertValue(expected, "irop", "IR010"); AcePathfinderUtil.insertValue(expected, "irval", "150"); AcePathfinderUtil.insertValue(expected, "idate", "19990412"); AcePathfinderUtil.insertValue(expected, "irop", "IR008"); AcePathfinderUtil.insertValue(expected, "irval", "2"); AcePathfinderUtil.insertValue(expected, "idate", "19990412"); AcePathfinderUtil.insertValue(expected, "irop", "IR009"); AcePathfinderUtil.insertValue(expected, "irval", "20"); AcePathfinderUtil.insertValue(expected, "idate", "19990412"); AcePathfinderUtil.insertValue(expected, "irop", "IR011"); AcePathfinderUtil.insertValue(expected, "irval", "5"); AcePathfinderUtil.insertValue(expected, "idate", "19990419"); AcePathfinderUtil.insertValue(expected, "irop", "IR009"); AcePathfinderUtil.insertValue(expected, "irval", "30"); AcePathfinderUtil.insertValue(expected, "idate", "19990419"); AcePathfinderUtil.insertValue(expected, "irop", "IR011"); AcePathfinderUtil.insertValue(expected, "irval", "10"); AcePathfinderUtil.insertValue(expected, "idate", "19990426"); AcePathfinderUtil.insertValue(expected, "irop", "IR009"); AcePathfinderUtil.insertValue(expected, "irval", "50"); AcePathfinderUtil.insertValue(expected, "idate", "19990426"); AcePathfinderUtil.insertValue(expected, "irop", "IR011"); AcePathfinderUtil.insertValue(expected, "irval", "15"); ArrayList<HashMap<String, String>> expArr = MapUtil.getBucket(expected, "management").getDataList(); HashMap<String, Object> data = new HashMap<String, Object>(); AcePathfinderUtil.insertValue(data, "pdate", "19990415"); ArrayList<HashMap<String, String>> actArr = ExperimentHelper.getPaddyIrrigation(data, num, percRate, dept, offsets, maxVals, minVals); assertEquals("getPaddyIrrigation: unexpected output", expArr, actArr); log.info("getPaddyIrrigation Output: {}", actArr.toString()); log.debug("== testGetPaddyIrrigation() Test End =="); }
@Test public void testCreateEvent_InvalidDap() throws IOException, Exception { log.debug("== testCreateEvent_InvalidDap() Test Start =="); String type = "IRRIGATION"; String dap = "a"; String pdate = "19820315"; HashMap<String, String> info = new HashMap(); info.put("irop", "IR010"); info.put("irval", "150"); // planting data is 19990415 HashMap expected = new HashMap(); HashMap<String, Object> data = new HashMap<String, Object>(); AcePathfinderUtil.insertValue(data, "pdate", pdate); HashMap<String, String> actual = ExperimentHelper.createEvent(data, type, dap, info, true); assertEquals("createEvent: unexpected output", expected, actual); log.info("createEvent Output: {}", actual.toString()); log.debug("== testCreateEvent_InvalidDap() Test End =="); }
@Test public void testgetAutoEventDate_machakos_givenPdates() throws IOException, Exception { log.debug("==testgetAutoEventDate_machakos_givenPdates() Test Start =="); ArrayList<ArrayList<HashMap<String, String>>> expected = new ArrayList(); int expDur = 2; HashMap pEvent = new HashMap(); int pdate = 19820203; int edate = 19820206; pEvent.put("event", "planting"); pEvent.put("crid", "MAZ"); HashMap iEvent = new HashMap(); int idate = 19820215; iEvent.put("event", "irrigation"); iEvent.put("irop", "ir001"); HashMap iaEvent = new HashMap(); int iadate = 19820315; iaEvent.put("event", "auto_irrig"); iaEvent.put("irmdp", "1234"); HashMap feEvent = new HashMap(); int fedate = 19820415; feEvent.put("event", "fertilizer"); feEvent.put("fecd", "123"); HashMap tEvent = new HashMap(); int tdate = 19820515; tEvent.put("event", "tillage"); tEvent.put("tiimp", "123456"); HashMap omEvent = new HashMap(); int omdate = 19820615; omEvent.put("event", "organic_matter"); omEvent.put("omcd", "12345"); HashMap hEvent = new HashMap(); int hdate = 19820715; hEvent.put("event", "harvest"); hEvent.put("harm", "111"); HashMap cEvent = new HashMap(); int cdate = 19820815; cEvent.put("event", "chemicals"); cEvent.put("chcd", "222"); HashMap mEvent = new HashMap(); int mdate = 19820915; mEvent.put("event", "mulch"); mEvent.put("mltp", "333"); for (int i = 0; i < expDur; i++) { expected.add(new ArrayList()); expected.get(i).add(createEvent(pEvent, pdate, i)); expected.get(i).get(expected.get(i).size() - 1).put("edate", edate + 10000 * i + ""); expected.get(i).add(createEvent(iEvent, idate, i)); expected.get(i).add(createEvent(iaEvent, iadate, i)); expected.get(i).add(createEvent(feEvent, fedate, i)); expected.get(i).add(createEvent(tEvent, tdate, i)); expected.get(i).add(createEvent(omEvent, omdate, i)); expected.get(i).add(createEvent(hEvent, hdate, i)); expected.get(i).add(createEvent(cEvent, cdate, i)); expected.get(i).add(createEvent(mEvent, mdate, i)); } HashMap<String, Object> data = new HashMap(); AcePathfinderUtil.insertValue(data, "pdate", "19820203"); MapUtil.getBucket(data, "management").getDataList().get(0).put("edate", "19820204"); AcePathfinderUtil.insertValue(data, "crid", "MAZ"); AcePathfinderUtil.insertValue(data, "idate", "19820213"); AcePathfinderUtil.insertValue(data, "irop", "ir001"); // AcePathfinderUtil.insertValue(data, "iadate", "19820313"); AcePathfinderUtil.insertValue(data, "irmdp", "1234"); MapUtil.getBucket(data, "management").getDataList().get(2).put("date", "19820313"); AcePathfinderUtil.insertValue(data, "fedate", "19820413"); AcePathfinderUtil.insertValue(data, "fecd", "123"); AcePathfinderUtil.insertValue(data, "tdate", "19820513"); AcePathfinderUtil.insertValue(data, "tiimp", "123456"); AcePathfinderUtil.insertValue(data, "omdat", "19820613"); AcePathfinderUtil.insertValue(data, "omcd", "12345"); AcePathfinderUtil.insertValue(data, "hadat", "19820713"); AcePathfinderUtil.insertValue(data, "harm", "111"); AcePathfinderUtil.insertValue(data, "cdate", "19820813"); AcePathfinderUtil.insertValue(data, "chcd", "222"); AcePathfinderUtil.insertValue(data, "mladat", "19820913"); AcePathfinderUtil.insertValue(data, "mltp", "333"); data.put("exp_dur", expDur + ""); data.put("origin_pdate", "19820201"); String[] pdates = {"19820203", "19830203"}; log.info("Inputs: {}", data); ArrayList<ArrayList<HashMap<String, String>>> results = ExperimentHelper.getAutoEventDate(data, pdates); log.info("Results: {}", results); assertEquals("getAutoEventDate: unexpected result", expected, results); }
@Test public void testGetAutoEvent() throws IOException, Exception { ArrayList<ArrayList<HashMap<String, String>>> expected = new ArrayList(); int expDur = 3; int sc_year = 2010; HashMap pEvent = new HashMap(); int pdate = 20100203; int edate = 20100204; pEvent.put("event", "planting"); pEvent.put("crid", "MAZ"); HashMap iEvent = new HashMap(); int idate = 20100213; iEvent.put("event", "irrigation"); iEvent.put("irop", "ir001"); HashMap iaEvent = new HashMap(); int iadate = 20100313; iaEvent.put("event", "auto_irrig"); iaEvent.put("irmdp", "1234"); HashMap feEvent = new HashMap(); int fedate = 20100413; feEvent.put("event", "fertilizer"); feEvent.put("fecd", "123"); HashMap tEvent = new HashMap(); int tdate = 20100513; tEvent.put("event", "tillage"); tEvent.put("tiimp", "123456"); HashMap omEvent = new HashMap(); int omdate = 20100613; omEvent.put("event", "organic_matter"); omEvent.put("omcd", "12345"); HashMap hEvent = new HashMap(); int hdate = 20100713; hEvent.put("event", "harvest"); hEvent.put("harm", "111"); HashMap cEvent = new HashMap(); int cdate = 20100813; cEvent.put("event", "chemicals"); cEvent.put("chcd", "222"); HashMap mEvent = new HashMap(); int mdate = 20100913; mEvent.put("event", "mulch"); mEvent.put("mltp", "333"); for (int i = 0; i < expDur; i++) { expected.add(new ArrayList()); expected.get(i).add(createEvent2(pEvent, pdate, i)); expected.get(i).get(expected.get(i).size() - 1).put("edate", edate + 10000 * i + ""); expected.get(i).add(createEvent2(iEvent, idate, i)); expected.get(i).add(createEvent2(iaEvent, iadate, i)); expected.get(i).add(createEvent2(feEvent, fedate, i)); expected.get(i).add(createEvent2(tEvent, tdate, i)); expected.get(i).add(createEvent2(omEvent, omdate, i)); expected.get(i).add(createEvent2(hEvent, hdate, i)); expected.get(i).add(createEvent2(cEvent, cdate, i)); expected.get(i).add(createEvent2(mEvent, mdate, i)); } HashMap<String, Object> data = new HashMap(); AcePathfinderUtil.insertValue(data, "pdate", "19820203"); MapUtil.getBucket(data, "management").getDataList().get(0).put("edate", "19820204"); AcePathfinderUtil.insertValue(data, "crid", "MAZ"); AcePathfinderUtil.insertValue(data, "idate", "19820213"); AcePathfinderUtil.insertValue(data, "irop", "ir001"); // AcePathfinderUtil.insertValue(data, "iadate", "19820313"); AcePathfinderUtil.insertValue(data, "irmdp", "1234"); MapUtil.getBucket(data, "management").getDataList().get(2).put("date", "19820313"); AcePathfinderUtil.insertValue(data, "fedate", "19820413"); AcePathfinderUtil.insertValue(data, "fecd", "123"); AcePathfinderUtil.insertValue(data, "tdate", "19820513"); AcePathfinderUtil.insertValue(data, "tiimp", "123456"); AcePathfinderUtil.insertValue(data, "omdat", "19820613"); AcePathfinderUtil.insertValue(data, "omcd", "12345"); AcePathfinderUtil.insertValue(data, "hadat", "19820713"); AcePathfinderUtil.insertValue(data, "harm", "111"); AcePathfinderUtil.insertValue(data, "cdate", "19820813"); AcePathfinderUtil.insertValue(data, "chcd", "222"); AcePathfinderUtil.insertValue(data, "mladat", "19820913"); AcePathfinderUtil.insertValue(data, "mltp", "333"); data.put("exp_dur", expDur + ""); data.put("sc_year", sc_year + ""); // HashMap dummyEvent = new HashMap(); // dummyEvent.put("date", "abc"); // MapUtil.getBucket(data, "management").getDataList().add(dummyEvent); log.info("Inputs: {}", data); ArrayList<ArrayList<HashMap<String, String>>> results = ExperimentHelper.getAutoEvent(data); log.info("Results: {}", results); assertEquals("getAutoEvent: unexpected result", expected, results); }
@Test public void testGetStableCDistribution() throws IOException, Exception { String line; String som3_0 = ".55"; String pp = "20"; String rd = "60"; String[] expected = {"1.10", "0.55", "0.65", "0.48", "0.10", "0.10", "0.04", "0.23"}; ArrayList<String> acctual; // BufferedReader br = new BufferedReader( // new InputStreamReader( // new FileInputStream(resource.getPath()))); // if ((line = br.readLine()) != null) { // HashMap<String, Object> data = JSONAdapter.fromJSON(line); // HashMap<String, Object> exp = getRawPackageContents(data, "experiments").get(0); // HashMap<String, Object> icData = (HashMap<String, Object>) getObjectOr(exp, // "initial_conditions", new HashMap()); // ExperimentHelper.getStableCDistribution(som3_0, pp, rd, data); // acctual = (ArrayList<HashMap<String, String>>) getObjectOr(icData, "soilLayer", // new ArrayList()); // File f = new File("RootDistJson.txt"); // BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(f)); // bo.write(JSONAdapter.toJSON(data).getBytes()); // bo.close(); // // f.delete(); // } // } HashMap<String, Object> data = new HashMap<String, Object>(); // AcePathfinderUtil.insertValue(data, "icbl", "5"); // AcePathfinderUtil.insertValue(data, "icbl", "15"); // AcePathfinderUtil.insertValue(data, "icbl", "30"); // AcePathfinderUtil.insertValue(data, "icbl", "60"); // AcePathfinderUtil.insertValue(data, "icbl", "90"); // AcePathfinderUtil.insertValue(data, "icbl", "120"); // AcePathfinderUtil.insertValue(data, "icbl", "150"); // AcePathfinderUtil.insertValue(data, "icbl", "180"); AcePathfinderUtil.insertValue(data, "sllb", "5"); AcePathfinderUtil.insertValue(data, "sloc", "2.00"); AcePathfinderUtil.insertValue(data, "sllb", "15"); AcePathfinderUtil.insertValue(data, "sloc", "1.00"); AcePathfinderUtil.insertValue(data, "sllb", "30"); AcePathfinderUtil.insertValue(data, "sloc", "1.00"); AcePathfinderUtil.insertValue(data, "sllb", "60"); AcePathfinderUtil.insertValue(data, "sloc", "0.50"); AcePathfinderUtil.insertValue(data, "sllb", "90"); AcePathfinderUtil.insertValue(data, "sloc", "0.10"); AcePathfinderUtil.insertValue(data, "sllb", "120"); AcePathfinderUtil.insertValue(data, "sloc", "0.10"); AcePathfinderUtil.insertValue(data, "sllb", "150"); AcePathfinderUtil.insertValue(data, "sloc", "0.04"); AcePathfinderUtil.insertValue(data, "sllb", "180"); AcePathfinderUtil.insertValue(data, "sloc", "0.24"); HashMap<String, ArrayList<String>> result = ExperimentHelper.getStableCDistribution(data, som3_0, pp, rd); log.info("getStableCDistribution() output: {}", result.toString()); // Map icData = (HashMap) getObjectOr(data, "soil", new HashMap()); // acctual = getObjectOr(icData, "soilLayer", new ArrayList()); acctual = getObjectOr(result, "slsc", new ArrayList()); for (int i = 0; i < expected.length; i++) { // try { // assertEquals("getStableCDistribution: normal case " + i, expected[i], // (String) acctual.get(i)); // } catch (Error e) { // log.error(e.getMessage()); // } assertEquals( "getStableCDistribution: normal case " + i, expected[i], (String) acctual.get(i)); } }
@Test public void testGetFertDistribution() throws IOException, Exception { String line; String num = "2"; String fecd = "FE005"; String feacd = "AP002"; String fedep = "10"; String[] offsets = {"10", "45"}; String[] ptps = {"33.3", "66.7"}; // planting data is 19990415 // fen_tot is 110 Map expected_1 = new HashMap(); expected_1.put("event", "fertilizer"); expected_1.put("date", "19990425"); expected_1.put("fecd", "FE005"); expected_1.put("feacd", "AP002"); expected_1.put("fedep", "10"); expected_1.put("feamn", "37"); Map expected_2 = new HashMap(); expected_2.put("event", "fertilizer"); expected_2.put("date", "19990530"); expected_2.put("fecd", "FE005"); expected_2.put("feacd", "AP002"); expected_2.put("fedep", "10"); expected_2.put("feamn", "73"); Map acctual_1; Map acctual_2; HashMap<String, Object> data = new HashMap<String, Object>(); // BufferedReader br = new BufferedReader( // new InputStreamReader( // new FileInputStream(resource2.getPath()))); // if ((line = br.readLine()) != null) { // HashMap<String, ArrayList<Map>> data = new LinkedHashMap<String, ArrayList<Map>>(); // Map<String, Object> expData = JSONAdapter.fromJSON(line); // data.put("experiments", new ArrayList()); // data.put("weathers", new ArrayList()); // data.get("experiments").add(expData); // data.get("weathers").add((Map) expData.get("weather")); AcePathfinderUtil.insertValue(data, "fen_tot", "110"); AcePathfinderUtil.insertValue(data, "pdate", "19990415"); ArrayList<HashMap<String, String>> events = ExperimentHelper.getFertDistribution(data, num, fecd, feacd, fedep, offsets, ptps); // Map mgnData = getObjectOr((HashMap) getObjectOr(data, "experiments", new ArrayList()).get(0), // "management", new HashMap()); // ArrayList<Map> events = (ArrayList<Map>) getObjectOr(data, "events", new ArrayList()); acctual_1 = events.get(0); acctual_2 = events.get(1); // } // try { // assertEquals("getRootDistribution: fert app 1", expected_1, acctual_1); // assertEquals("getRootDistribution: fert app 2", expected_2, acctual_2); // } catch (Error e) { // log.error(e.getMessage()); // } assertEquals("getRootDistribution: fert app 1", expected_1, acctual_1); assertEquals("getRootDistribution: fert app 2", expected_2, acctual_2); log.info("getFertDistribution Output: {}", events.toString()); }