From fd6b63bf0db9abab9b06ef993e2ed71442639386 Mon Sep 17 00:00:00 2001 From: Tai Kuo Date: Sat, 20 Jun 2020 09:35:31 +0800 Subject: Merge google/walt Merge from https://github.com/google/walt.git Bug: 149721303 Bug: 149721109 Test: ./gradlew build -x :app:lint Change-Id: I56e2f506782fbbe01e3bf2489fa3091226a2b5ca Signed-off-by: Tai Kuo --- .../latency/walt/AccelerometerFragmentTest.java | 60 ++++++++++++++++++++++ .../java/org/chromium/latency/walt/UtilsTest.java | 30 +++++++++++ 2 files changed, 90 insertions(+) create mode 100644 android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java (limited to 'android/WALT/app/src/test/java/org/chromium/latency/walt') diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java new file mode 100644 index 0000000..b29ace8 --- /dev/null +++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.chromium.latency.walt; + +import com.github.mikephil.charting.data.Entry; + +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import static junit.framework.Assert.assertEquals; + +public class AccelerometerFragmentTest { + + @Test + public void testSmoothEntries() { + Random rand = new Random(1234); + List entries = new ArrayList<>(); + for (int i = 1; i <= 400; i++) { + entries.add(new Entry(i, i + rand.nextFloat()*0.01f)); + } + final List smoothEntries = AccelerometerFragment.smoothEntries(entries, 4); + for (Entry e : smoothEntries) { + assertEquals(e.getX(), e.getY(), 1e-2); + } + } + + @Test + public void testFindShifts() { + Random rand = new Random(5678); + List phoneEntries = new ArrayList<>(); + List waltEntries = new ArrayList<>(); + for (int i = 0; i < 1000; i++) { + if (i % 3 == 0) + phoneEntries.add(new Entry(i, (float) Math.sin((i - 12)*Math.PI/100))); + waltEntries.add(new Entry(i, (float) Math.sin(i*Math.PI/100)*rand.nextFloat() + rand.nextFloat()*0.2f - 0.1f)); + } + final double[] shifts = AccelerometerFragment.findShifts(phoneEntries, waltEntries); + for (double d : shifts) { + System.out.println(d); + } + assertEquals(12, Utils.argmax(shifts)/10d, 1e-9); + } +} diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java index bf77e05..86513f4 100644 --- a/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java +++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java @@ -16,9 +16,12 @@ package org.chromium.latency.walt; +import com.github.mikephil.charting.data.Entry; + import org.junit.Test; import java.util.ArrayList; +import java.util.List; import java.util.Random; import static java.lang.Double.NaN; @@ -159,4 +162,31 @@ public class UtilsTest { } assertEquals(latency, Utils.findBestShift(laserTimes, touchTimes, touchY), 1e-6); } + + @Test + public void testMeanEntries() { + List entries = new ArrayList<>(); + for (int i = 1; i <= 10; i++) { + entries.add(new Entry(i, i)); + } + assertEquals(5.5, Utils.mean(entries), 1e-12); + } + + @Test + public void testMinEntries() { + List entries = new ArrayList<>(); + for (int i = 1; i <= 10; i++) { + entries.add(new Entry(i, i)); + } + assertEquals(1, Utils.min(entries), 1e-12); + } + + @Test + public void testMaxEntries() { + List entries = new ArrayList<>(); + for (int i = 1; i <= 10; i++) { + entries.add(new Entry(i, i)); + } + assertEquals(10, Utils.max(entries), 1e-12); + } } -- cgit v1.2.3