public Boolean join(String t_name1, String t_name2) { try { IKmlFolder temp = ge.createFolder(""); String[] trip1 = t_pool.getTripDetailsForTrip(Module.getIndex(t_name1).ToString()); String[] trip2 = t_pool.getTripDetailsForTrip(Module.getIndex(t_name2).ToString()); IKmlPlacemark point = t_pool.getStart(t_pool.getByName(t_name2)); String[] trip = (String[])trip1.Clone(); /* trip[5] = trip2[5]; * trip[6] = Module.duration(trip[4], trip[5]); * trip[11] = trip2[11]; * trip[12] = trip2[12]; */ Hashtable cord1 = Module.getCoordinates(t_pool.getFinish(t_pool.getByName(t_name1))); Hashtable cord2 = Module.getCoordinates(t_pool.getStart(t_pool.getByName(t_name2))); /* * trip[7] = (double.Parse(trip1[7]) + double.Parse(trip2[7]) + DistanceAlgorithm.DistanceBetweenPlaces((double)cord1["lat"], (double)cord1["lon"] * , (double)cord2["lat"], (double)cord2["lon"])).ToString(); * * trip[8] = Math.Round((double.Parse(trip[7]) / Module.durationConverter(trip[6])), 3).ToString(); */ String style = t_pool.insert(t_name1, temp, trip, ge.createStyle("")); IKmlObjectList days = ge.getFeatures().getChildNodes(); IKmlDocument day = (IKmlDocument)days.item(0); day.getFeatures().appendChild(temp); ArrayList data = new ArrayList(); data.Add(t_name1); data.Add(point); data.Add(trip1); data.Add(trip2); data.Add(style); record.joi_trip(data); return(true); } catch { return(false); } }
public Boolean split_test(String name, int index) { //create a kml folder by tripname IKmlFolder temp = t_pool.getByName(name); // get the current placemark and the pre placemark at a given index IKmlPlacemark sst = (IKmlPlacemark)temp.getFeatures().getChildNodes().item(index - 1); IKmlPlacemark st = (IKmlPlacemark)temp.getFeatures().getChildNodes().item(index); // get trip size, number of trips and number of columns(lat,long ,elapse time etc) int pt_size = temp.getFeatures().getChildNodes().getLength(); int init_size_t = t_pool.getSize(); core.split(st); //get index + 1 of the current trip String _name = "Trip_" + (Module.getIndex(name) + 1); Boolean gflag = true; Boolean fflag = true; try { int final_size_t = t_pool.getSize(); //compare the initial size of the t pool against the final t pool. Assert.AreEqual(init_size_t, final_size_t - 1); //compare the split index with the size of the first half of the splitted trip Assert.AreEqual(index, t_pool.getByName(name).getFeatures().getChildNodes().getLength()); // compare the split index with the size of the second half of the splitted trip Assert.AreEqual(pt_size - index, t_pool.getByName(_name).getFeatures().getChildNodes().getLength()); Console.WriteLine(" >>>>>>>>>>>> Passed the test for split the trip on GUI level <<<<<<<<<<<<"); } catch { Console.WriteLine(" -----------> Failed the test for split the trip on GUI level <-----------"); gflag = false; } try { IKmlObjectList days = ge.getFeatures().getChildNodes(); IKmlDocument day = (IKmlDocument)days.item(0); String r_start = txtedit.getViewer().Rows[0]["Start"].ToString(); String r_finsih = txtedit.getViewer().Rows[0]["Finish"].ToString(); String r_duration = txtedit.getViewer().Rows[0]["Time"].ToString(); String r_slon = txtedit.getViewer().Rows[0]["sLongitude"].ToString(); String r_flon = txtedit.getViewer().Rows[0]["fLongitude"].ToString(); String r_slat = txtedit.getViewer().Rows[0]["sLatitude"].ToString(); String r_flat = txtedit.getViewer().Rows[0]["fLatitude"].ToString(); txtedit.splitTrip(day.getName(), Module.getIndex(name).ToString(), t_pool.getStart(t_pool.getByName("Trip_" + (Module.getIndex(name) + 1))), t_pool.getFinish(t_pool.getByName(name)), t_pool); try { Assert.AreEqual(txtedit.getViewer().Rows[0]["Finish"].ToString(), t_pool.getFinish(t_pool.getByName(name)).getName().ToString()); Assert.AreEqual(txtedit.getViewer().Rows[1]["Start"].ToString(), t_pool.getStart(t_pool.getByName("Trip_" + (Module.getIndex(name) + 1))).getName().ToString()); Console.WriteLine(" >>>>>>>>>>>> Succeed to compute the correct start and finish time <<<<<<<<<<<<"); } catch { Console.WriteLine(" -----------> Failed to compute the correct start and finish time <-----------"); fflag = false; } try { double tp1 = Module.durationConverter(txtedit.getViewer().Rows[0]["Time"].ToString()); double gap = ((Convert.ToDateTime(txtedit.getViewer().Rows[1]["Start"].ToString()) - Convert.ToDateTime(txtedit.getViewer().Rows[0]["Finish"].ToString()))).TotalSeconds; double tp2 = Module.durationConverter(txtedit.getViewer().Rows[1]["Time"].ToString()); // MessageBox.Show(Module.durationConverter(txtedit.getViewer().Rows[0]["Time"].ToString()) + " " + t.ToString() + " " + Module.durationConverter(txtedit.getViewer().Rows[1]["Time"].ToString()) + " " + Module.durationConverter(r_duration)); Assert.AreEqual(Module.durationConverter(r_duration), tp1 + gap + tp2); Console.WriteLine(" >>>>>>>>>>>> Succeed to compute the correct trip duration <<<<<<<<<<<<"); } catch { Console.WriteLine(" -----------> Failed to compute the correct the trip duration <-----------"); fflag = false; } try { String n_slon = txtedit.getViewer().Rows[1]["sLongitude"].ToString(); String n_slat = txtedit.getViewer().Rows[1]["sLatitude"].ToString(); String n_flon = txtedit.getViewer().Rows[0]["sLongitude"].ToString(); String n_flat = txtedit.getViewer().Rows[0]["sLatitude"].ToString(); String a_slon = Module.getCoordinates(t_pool.getStart(t_pool.getByName("Trip_" + (Module.getIndex(name) + 1))))["lon"].ToString(); String a_slat = Module.getCoordinates(t_pool.getStart(t_pool.getByName("Trip_" + (Module.getIndex(name) + 1))))["lat"].ToString(); String a_flon = Module.getCoordinates(t_pool.getStart(t_pool.getByName(name)))["lon"].ToString(); String a_flat = Module.getCoordinates(t_pool.getStart(t_pool.getByName(name)))["lat"].ToString(); /* * MessageBox.Show(n_slon+" "+a_slon); * MessageBox.Show(n_slat + " " + a_slat); * * MessageBox.Show(n_flon + " " + a_flon); * MessageBox.Show(n_flat + " " + a_flat); * * Assert.AreEqual(n_slat.Trim(), a_slat.Trim()); * Assert.AreEqual(n_slon.Trim(), a_slon.Trim()); * * Assert.AreEqual(n_flat.Trim(), a_flat.Trim()); * Assert.AreEqual(n_flon.Trim(), a_flon.Trim()); */ Console.WriteLine(" >>>>>>>>>>>> Succeed to compute the correct start and finish coordinates <<<<<<<<<<<<<"); } catch { Console.WriteLine(" -----------> Failed to compute the correct start and finish coordinates <----------"); fflag = false; } Assert.AreEqual(true, fflag); Console.WriteLine(" >>>>>>>>>>>> Passed the test for split the trip on file level <<<<<<<<<<<<<"); } catch { Console.WriteLine(" -----------> Failed the test for split the trip on file level <----------"); } return(gflag && fflag); }