diff --git a/app/src/test/java/com/team34/cse_110_project_team_34/CalculationTest.java b/app/src/test/java/com/team34/cse_110_project_team_34/CalculationTest.java new file mode 100644 index 0000000..20857a0 --- /dev/null +++ b/app/src/test/java/com/team34/cse_110_project_team_34/CalculationTest.java @@ -0,0 +1,30 @@ +package com.team34.cse_110_project_team_34; + +import static org.junit.Assert.assertEquals; + +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import utilities.Calculation; + + +@RunWith(AndroidJUnit4.class) +public class CalculationTest { + double lat1 = 0; + double long1 = 0; + double lat2 = 40; + double long2 = 30; + + @Test + public void checkAngle() { + assertEquals(Math.toDegrees(Math.asin(3/(float) 5)), Calculation.getAngle(lat1,long1,lat2,long2), 1); + } + + @Test + public void checkDistance() { + assertEquals(69*Math.sqrt((lat2-lat1)*(lat2-lat1) + (long2-long1)*(long2-long1)), Calculation.getDistance(lat1,long1,lat2,long2),1); + } +} diff --git a/app/src/test/java/com/team34/cse_110_project_team_34/DatabaseTest.java b/app/src/test/java/com/team34/cse_110_project_team_34/DatabaseTest.java new file mode 100644 index 0000000..bab0941 --- /dev/null +++ b/app/src/test/java/com/team34/cse_110_project_team_34/DatabaseTest.java @@ -0,0 +1,2 @@ +package com.team34.cse_110_project_team_34;public class DatabaseTest { +} diff --git a/app/src/test/java/com/team34/cse_110_project_team_34/OrientationTest.java b/app/src/test/java/com/team34/cse_110_project_team_34/OrientationTest.java new file mode 100644 index 0000000..02dd5f6 --- /dev/null +++ b/app/src/test/java/com/team34/cse_110_project_team_34/OrientationTest.java @@ -0,0 +1,59 @@ + + +package com.team34.cse_110_project_team_34; + +import static org.junit.Assert.assertEquals; + +import android.content.Context; +import android.content.pm.ActivityInfo; +import android.media.Image; +import android.provider.SyncStateContract; +import android.widget.ImageView; + +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.MutableLiveData; +import androidx.test.core.app.ActivityScenario; +import androidx.test.core.app.ApplicationProvider; + +import com.ibm.icu.impl.units.UnitsData; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import utilities.OrientationService; + + +@RunWith(RobolectricTestRunner.class) +public class OrientationTest { + ActivityScenario scenario; + + @Before + public void preTest() { + scenario = ActivityScenario.launch(CompassActivity.class); + scenario.moveToState(Lifecycle.State.CREATED); + scenario.moveToState(Lifecycle.State.STARTED); + scenario.moveToState(Lifecycle.State.RESUMED); + } + + // OrientationService's azimuth is in radians + // Compass's rotation is in degrees + @Test + public void testOrientation() { + float testValue = (float) Math.PI; + ActivityScenario scenario = ActivityScenario.launch(CompassActivity.class); + + scenario.onActivity(activity -> { + OrientationService orientationService = OrientationService.getInstance(activity); + MutableLiveData mockOrientation = new MutableLiveData(); + + mockOrientation.setValue(testValue); + orientationService.setMockOrientationSource(mockOrientation); + activity.observeOrientation(); + + ImageView compass = activity.findViewById(R.id.compass); + assertEquals(Math.toDegrees(testValue), compass.getRotation(), 1); + }); + } +}