blob: f6f0bc2ab5e89d91a548bd9b8754d6a9c59b4bfb [file] [log] [blame]
package com.airbnb.lottie;
import androidx.core.util.Pair;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import static junit.framework.Assert.assertTrue;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
public class PerformanceTrackerTest {
private PerformanceTracker performanceTracker;
@Before
public void setup() {
performanceTracker = new PerformanceTracker();
performanceTracker.setEnabled(true);
}
@Test
public void testDisabled() {
performanceTracker.setEnabled(false);
performanceTracker.recordRenderTime("Hello", 16f);
assertTrue(performanceTracker.getSortedRenderTimes().isEmpty());
}
@Test
public void testOneFrame() {
performanceTracker.recordRenderTime("Hello", 16f);
List<Pair<String, Float>> sortedRenderTimes = performanceTracker.getSortedRenderTimes();
assertThat(sortedRenderTimes.size(), equalTo(1));
assertThat(sortedRenderTimes.get(0).first, equalTo("Hello"));
assertThat(sortedRenderTimes.get(0).second, equalTo(16f));
}
@Test
public void testTwoFrames() {
performanceTracker.recordRenderTime("Hello", 16f);
performanceTracker.recordRenderTime("Hello", 8f);
List<Pair<String, Float>> sortedRenderTimes = performanceTracker.getSortedRenderTimes();
assertThat(sortedRenderTimes.size(), equalTo(1));
assertThat(sortedRenderTimes.get(0).first, equalTo("Hello"));
assertThat(sortedRenderTimes.get(0).second, equalTo(12f));
}
@Test
public void testTwoLayers() {
performanceTracker.recordRenderTime("Hello", 16f);
performanceTracker.recordRenderTime("World", 8f);
List<Pair<String, Float>> sortedRenderTimes = performanceTracker.getSortedRenderTimes();
assertThat(sortedRenderTimes.size(), equalTo(2));
assertThat(sortedRenderTimes.get(0).first, equalTo("Hello"));
assertThat(sortedRenderTimes.get(0).second, equalTo(16f));
assertThat(sortedRenderTimes.get(1).first, equalTo("World"));
assertThat(sortedRenderTimes.get(1).second, equalTo(8f));
}
@Test
public void testTwoLayersAlternatingFrames() {
performanceTracker.recordRenderTime("Hello", 16f);
performanceTracker.recordRenderTime("World", 8f);
performanceTracker.recordRenderTime("Hello", 32f);
performanceTracker.recordRenderTime("World", 4f);
List<Pair<String, Float>> sortedRenderTimes = performanceTracker.getSortedRenderTimes();
assertThat(sortedRenderTimes.size(), equalTo(2));
assertThat(sortedRenderTimes.get(0).first, equalTo("Hello"));
assertThat(sortedRenderTimes.get(0).second, equalTo(24f));
assertThat(sortedRenderTimes.get(1).first, equalTo("World"));
assertThat(sortedRenderTimes.get(1).second, equalTo(6f));
}
}