Add AnglesTest

pull/494/head
Mattia Iavarone 6 years ago
parent 58fb533f61
commit c554e7e9e0
  1. 1
      cameraview/build.gradle
  2. 9
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/offset/Angles.java
  3. 80
      cameraview/src/test/java/com/otaliastudios/cameraview/engine/offset/AnglesTest.java

@ -221,7 +221,6 @@ task mergedCoverageReport(type: JacocoReport) {
classFilter.add('**/com/otaliastudios/cameraview/engine/CameraEngine**.*')
classFilter.add('**/com/otaliastudios/cameraview/engine/Camera1Engine**.*')
classFilter.add('**/com/otaliastudios/cameraview/engine/Camera2Engine**.*')
classFilter.add('**/com/otaliastudios/cameraview/engine/offset/**.*')
classFilter.add('**/com/otaliastudios/cameraview/picture/**.*')
classFilter.add('**/com/otaliastudios/cameraview/video/**.*')
classFilter.add('**/com/otaliastudios/cameraview/video/encoding/**.*')

@ -1,6 +1,7 @@
package com.otaliastudios.cameraview.engine.offset;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import com.otaliastudios.cameraview.controls.Facing;
@ -21,9 +22,9 @@ import com.otaliastudios.cameraview.controls.Facing;
public class Angles {
private Facing mSensorFacing;
private int mSensorOffset = 0;
private int mDisplayOffset = 0;
private int mDeviceOrientation = 0;
@VisibleForTesting int mSensorOffset = 0;
@VisibleForTesting int mDisplayOffset = 0;
@VisibleForTesting int mDeviceOrientation = 0;
/**
* We want to keep everything in the {@link Axis#ABSOLUTE} reference,
@ -80,7 +81,7 @@ public class Angles {
if (from == to) {
return 0;
} else if (to == Reference.BASE) {
return 360 - absoluteOffset(to, from);
return sanitizeOutput(360 - absoluteOffset(to, from));
} else if (from == Reference.BASE) {
switch (to) {
case VIEW: return sanitizeOutput(360 - mDisplayOffset);

@ -0,0 +1,80 @@
package com.otaliastudios.cameraview.engine.offset;
import com.otaliastudios.cameraview.controls.Facing;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AnglesTest {
private Angles angles;
@Before
public void setUp() {
angles = new Angles();
}
@After
public void tearDown() {
angles = null;
}
@Test
public void testSetSensorOffset() {
angles.setSensorOffset(Facing.BACK, 90);
assertEquals(90, angles.mSensorOffset);
angles.setSensorOffset(Facing.FRONT, 90);
assertEquals(270, angles.mSensorOffset);
}
@Test
public void testSetDisplayOffset() {
angles.setDisplayOffset(90);
assertEquals(90, angles.mDisplayOffset);
}
@Test
public void testSetDeviceOrientation() {
angles.setDeviceOrientation(90);
assertEquals(90, angles.mDeviceOrientation);
}
@Test(expected = IllegalStateException.class)
public void testSetSensorOffset_throws() {
angles.setSensorOffset(Facing.BACK, 135);
}
@Test(expected = IllegalStateException.class)
public void testSetDisplayOffset_throws() {
angles.setDisplayOffset(135);
}
@Test(expected = IllegalStateException.class)
public void testSetDeviceOrientation_throws() {
angles.setDeviceOrientation(135);
}
@Test
public void testOffset_BaseToSensor() {
angles.setSensorOffset(Facing.BACK, 90);
assertEquals(270, angles.offset(Reference.BASE, Reference.SENSOR, Axis.RELATIVE_TO_SENSOR));
angles.setSensorOffset(Facing.FRONT, 270); // This is like setting 90
assertEquals(90, angles.offset(Reference.BASE, Reference.SENSOR, Axis.RELATIVE_TO_SENSOR));
}
@Test
public void testOffset_BaseToView() {
angles.setDisplayOffset(90);
assertEquals(270, angles.offset(Reference.BASE, Reference.VIEW, Axis.ABSOLUTE));
}
@Test
public void testOffset_BaseToOutput() {
angles.setDeviceOrientation(90);
assertEquals(90, angles.offset(Reference.BASE, Reference.OUTPUT, Axis.ABSOLUTE));
}
}
Loading…
Cancel
Save