Selaa lähdekoodia

junit tests. Added continue condition in MapScreen for testing.

Fernando Diaz 9 vuotta sitten
vanhempi
commit
cf85fc18e4

+ 31 - 24
app/src/main/java/com/example/yiupang/freefoodfinder/MapScreen.java

@@ -59,11 +59,9 @@ public class MapScreen extends android.support.v4.app.Fragment implements OnMapR
                 {
                     List<Event> events = Utility.parseFromJSONToEventObjs((JsonNode) response);
                     Log.d("EVENTS NUM", "Events #: " + events.size());
-                    for(int i = 0; i < events.size(); i++)
-                    {
 
-                        dropPin(events, i);
-                    }
+                    dropPin(events);
+
                 }
             }
 
@@ -72,41 +70,50 @@ public class MapScreen extends android.support.v4.app.Fragment implements OnMapR
         return view;
     }
 
-    public void dropPin(List<Event> events, int i)
+    public void dropPin(List<Event> events)
     {
-        Event currEvent = events.get(i);
 
-        double offset = 0.00005f;
-        double lat = currEvent.getLat();
-        double lng = currEvent.getLng();
-        while(markerLocations.containsKey(Double.toString(lat + lng)))
+        for(int i = 0; i < events.size(); i++)
         {
-            lat += offset;
-            lng += offset;
-        }
-        currEvent.setLat(lat);
-        currEvent.setLng(lng);
-        markerLocations.put(Double.toString(currEvent.getLat() + currEvent.getLng()), "");
+            Event currEvent = events.get(i);
+
+            double offset = 0.00005f;
+            double lat = currEvent.getLat();
+            double lng = currEvent.getLng();
+            while (markerLocations.containsKey(Double.toString(lat + lng)))
+            {
+                lat += offset;
+                lng += offset;
+            }
+            currEvent.setLat(lat);
+            currEvent.setLng(lng);
+            markerLocations.put(Double.toString(currEvent.getLat() + currEvent.getLng()), "");
+
+            String title = currEvent.getName();
+            String desc = currEvent.getDescription();
 
-        String title = currEvent.getName();
-        String desc = currEvent.getDescription();
+            lats.add(lat);
+            lngs.add(lng);
+            titles.add(title);
+            descrips.add(desc);
 
-        lats.add(lat);
-        lngs.add(lng);
-        titles.add(title);
-        descrips.add(desc);
+            LatLng currPos = new LatLng(lats.get(i), lngs.get(i));
 
-        LatLng currPos = new LatLng(lats.get(i), lngs.get(i));
+            if(map == null)
+                continue;
+            map.addMarker(new MarkerOptions().position(currPos).title(titles.get(i)).snippet(descrips.get(i)));
 
-        map.addMarker(new MarkerOptions().position(currPos).title(titles.get(i)).snippet(descrips.get(i)));
+        }
     }
 
+
     @Override
     public void onMapReady(GoogleMap map)
     {
         this.map = map;
         LatLng slo = new LatLng(35.2827778, -120.6586111);
 
+
         map.moveCamera(CameraUpdateFactory.newLatLngZoom(slo, 12.0f));
 
         Log.d("LATS NUM", "Events #: " + lats.size());

+ 63 - 0
app/src/test/java/com/example/yiupang/freefoodfinder/TestMapScreenForLoop.java

@@ -0,0 +1,63 @@
+package com.example.yiupang.freefoodfinder;
+
+/**
+ * Created by Fernando on 6/6/17.
+ */
+
+import org.junit.Test;
+import static junit.framework.Assert.assertEquals;
+
+import java.util.ArrayList;
+
+
+public class TestMapScreenForLoop
+{
+    @Test
+    public void pinLocationTest()
+    {
+        ArrayList<Event> testEvents = new ArrayList<Event>();
+
+        Event event1 = new Event();
+        event1.setName("Event1");
+        event1.setPlace("Kennedy Library");
+        event1.setDescription("This is event1");
+        event1.setLat(35.30187);
+        event1.setLng(-120.663861);
+        testEvents.add(event1);
+
+        Event event2 = new Event();
+        event1.setName("Event2");
+        event1.setDescription("This is event2");
+        event2.setPlace("Computer Science Building");
+        event2.setLat(35.299895);
+        event2.setLng(-120.662144);
+        testEvents.add(event2);
+
+        Event event3 = new Event();
+        event1.setName("Event3");
+        event1.setDescription("This is event3");
+        event3.setPlace("Engineering East");
+        event3.setLat(35.300576);
+        event3.setLng(-120.661726);
+        testEvents.add(event3);
+
+        MapScreen ms = new MapScreen();
+
+        ms.dropPin(testEvents);
+        ArrayList<Double> lats = ms.lats;
+        ArrayList<Double> lngs = ms.lngs;
+
+
+        assertEquals(35.30187, lats.get(0));
+        assertEquals(-120.663861, lngs.get(0));
+
+        assertEquals(35.299895, lats.get(1));
+        assertEquals(-120.662144, lngs.get(1));
+
+        assertEquals(35.300576, lats.get(2));
+        assertEquals(-120.661726, lngs.get(2));
+
+
+    }
+
+}

+ 62 - 0
app/src/test/java/com/example/yiupang/freefoodfinder/TestMapScreenWhileLoop.java

@@ -0,0 +1,62 @@
+package com.example.yiupang.freefoodfinder;
+
+/**
+ * Created by Fernando on 6/6/17.
+ */
+
+import org.junit.Test;
+import static junit.framework.Assert.assertEquals;
+
+import java.util.ArrayList;
+
+
+public class TestMapScreenWhileLoop
+{
+    @Test
+    public void offSetTest() {
+
+        ArrayList<Event> testEvents = new ArrayList<Event>();
+
+        Event event1 = new Event();
+        event1.setName("Event1");
+        event1.setPlace("Kennedy Library");
+        event1.setDescription("This is event1");
+        event1.setLat(35.30187);
+        event1.setLng(-120.663861);
+        testEvents.add(event1);
+
+        Event event2 = new Event();
+        event1.setName("Event2");
+        event1.setDescription("This is event2");
+        event2.setPlace("Kennedy Library");
+        event2.setLat(35.299895 + 0.00005);
+        event2.setLng(-120.662144 + 0.00005);
+        testEvents.add(event2);
+
+        Event event3 = new Event();
+        event1.setName("Event3");
+        event1.setDescription("This is event3");
+        event3.setPlace("Kennedy Library");
+        event3.setLat(35.300576 + 0.00005 + 0.00005);
+        event3.setLng(-120.661726 + 0.00005 + 0.00005);
+        testEvents.add(event3);
+
+
+        MapScreen ms = new MapScreen();
+
+        ms.dropPin(testEvents);
+        ArrayList<Double> lats = ms.lats;
+        ArrayList<Double> lngs = ms.lngs;
+
+
+        assertEquals(35.30187, lats.get(0));
+        assertEquals(-120.663861, lngs.get(0));
+
+        assertEquals(35.299895 + 0.00005, lats.get(1));
+        assertEquals(-120.662144 + 0.00005, lngs.get(1));
+
+        assertEquals(35.300576 + 0.00005 + 0.00005, lats.get(2));
+        assertEquals(-120.661726 + 0.00005 + 0.00005, lngs.get(2));
+
+    }
+}