summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeilin Xu <xuweilin@google.com>2024-01-03 14:13:00 -0800
committerWeilin Xu <xuweilin@google.com>2024-02-12 11:15:26 -0800
commitd492becf2b4006bd92df4c5eb539ddd4fa320b50 (patch)
tree23c235eecb14c013d1bd9154651836a38c99d9ae
parent45bb2a3b9e8ab24d0c42f259330d80637a9da86a (diff)
downloadsystemlibs-d492becf2b4006bd92df4c5eb539ddd4fa320b50.tar.gz
Add unit tests for ProgramSelectorComparator
Bug: 266834749 Test: atest ProgramSelectorExtTest Change-Id: I77d4b8dd0906675c60575d246f8cdc1f8f466a32
-rw-r--r--car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramSelectorExtTest.java120
1 files changed, 117 insertions, 3 deletions
diff --git a/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramSelectorExtTest.java b/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramSelectorExtTest.java
index b7bbbcd..659ecfc 100644
--- a/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramSelectorExtTest.java
+++ b/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramSelectorExtTest.java
@@ -25,6 +25,8 @@ import com.google.common.truth.Expect;
import org.junit.Rule;
import org.junit.Test;
+import java.util.Comparator;
+
public final class ProgramSelectorExtTest {
private static final long AM_FREQUENCY_VALUE = 700;
@@ -44,9 +46,7 @@ public final class ProgramSelectorExtTest {
(HD_FREQUENCY_VALUE << 36) | ((long) HD_SUBCHANNEL_VALUE << 32)
| HD_STATION_ID_VALUE);
private static final ProgramSelector.Identifier DAB_DMB_SID_EXT_IDENTIFIER =
- new ProgramSelector.Identifier(ProgramSelector.IDENTIFIER_TYPE_DAB_DMB_SID_EXT,
- ((long) DAB_SCIDS_VALUE << 40) | ((long) DAB_ECC_VALUE << 32)
- | DAB_SID_VALUE);
+ createDabSidExtId(DAB_SID_VALUE, DAB_ECC_VALUE, DAB_SCIDS_VALUE);
private static final ProgramSelector.Identifier DAB_ENSEMBLE_IDENTIFIER =
new ProgramSelector.Identifier(ProgramSelector.IDENTIFIER_TYPE_DAB_ENSEMBLE,
DAB_ENSEMBLE_VALUE);
@@ -63,6 +63,8 @@ public final class ProgramSelectorExtTest {
ProgramSelector.PROGRAM_TYPE_DAB, DAB_DMB_SID_EXT_IDENTIFIER,
new ProgramSelector.Identifier[]{DAB_FREQUENCY_IDENTIFIER, DAB_ENSEMBLE_IDENTIFIER},
/* vendorIds= */ null);
+ private static final Comparator<ProgramSelector> SELECTOR_COMPARATOR =
+ new ProgramSelectorExt.ProgramSelectorComparator();
@Rule
public final Expect mExpect = Expect.create();
@@ -239,4 +241,116 @@ public final class ProgramSelectorExtTest {
.that(ProgramSelectorExt.IdentifierExt.asDabPrimary(DAB_DMB_SID_EXT_IDENTIFIER)
.getSCIdS()).isEqualTo(DAB_SCIDS_VALUE);
}
+
+ @Test
+ public void compare_withTwoFmSelectorsForProgramSelectorComparator() {
+ ProgramSelector fmSel2 = ProgramSelectorExt.createAmFmSelector(FM_FREQUENCY_VALUE + 200);
+
+ mExpect.withMessage("Comparison between two FM selectors")
+ .that(SELECTOR_COMPARATOR.compare(FM_SELECTOR, fmSel2)).isEqualTo(-1);
+ }
+
+ @Test
+ public void compare_withFmAndHdSelectors() {
+ mExpect.withMessage("Comparison between FM and HD selectors")
+ .that(SELECTOR_COMPARATOR.compare(FM_SELECTOR, HD_SELECTOR)).isEqualTo(-1);
+ }
+
+ @Test
+ public void compare_withHdSelectorsWithDifferentFrequncies() {
+ ProgramSelector.Identifier hdId = new ProgramSelector.Identifier(
+ ProgramSelector.IDENTIFIER_TYPE_HD_STATION_ID_EXT,
+ ((HD_FREQUENCY_VALUE + 200) << 36) | HD_STATION_ID_VALUE);
+ ProgramSelector hdSel = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_FM_HD, hdId,
+ new ProgramSelector.Identifier[]{}, /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between HD selectors with different frequencies")
+ .that(SELECTOR_COMPARATOR.compare(hdSel, HD_SELECTOR)).isEqualTo(1);
+ }
+
+ @Test
+ public void compare_withHdSelectorsWithDifferentSubchannels() {
+ ProgramSelector.Identifier hdId2 = new ProgramSelector.Identifier(
+ ProgramSelector.IDENTIFIER_TYPE_HD_STATION_ID_EXT,
+ (HD_FREQUENCY_VALUE << 36) | HD_STATION_ID_VALUE);
+ ProgramSelector hdSel2 = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_FM_HD, hdId2,
+ new ProgramSelector.Identifier[]{}, /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between HD selectors with different subchannels")
+ .that(SELECTOR_COMPARATOR.compare(hdSel2, HD_SELECTOR)).isEqualTo(-1);
+ }
+
+ @Test
+ public void compare_withDabSelectorsWithDifferentFrequencies() {
+ ProgramSelector.Identifier dabFrequencyId2 = new ProgramSelector.Identifier(
+ ProgramSelector.IDENTIFIER_TYPE_DAB_FREQUENCY, 174_928);
+ ProgramSelector.Identifier dabEnsembleId2 = new ProgramSelector.Identifier(
+ ProgramSelector.IDENTIFIER_TYPE_DAB_ENSEMBLE, DAB_ENSEMBLE_VALUE + 1);
+ ProgramSelector dabSel2 = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_DAB,
+ DAB_DMB_SID_EXT_IDENTIFIER,
+ new ProgramSelector.Identifier[]{dabFrequencyId2, dabEnsembleId2},
+ /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between DAB selectors with different frequencies")
+ .that(SELECTOR_COMPARATOR.compare(dabSel2, DAB_SELECTOR)).isEqualTo(-1);
+ }
+
+ @Test
+ public void compare_withDabSelectorsWithDifferentEccs() {
+ ProgramSelector.Identifier dabExtId2 = createDabSidExtId(DAB_SID_VALUE - 1,
+ DAB_ECC_VALUE + 1, DAB_SCIDS_VALUE + 1);
+ ProgramSelector dabSel2 = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_DAB,
+ dabExtId2, new ProgramSelector.Identifier[]{DAB_FREQUENCY_IDENTIFIER,
+ DAB_ENSEMBLE_IDENTIFIER}, /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between DAB selectors with different ECC values")
+ .that(SELECTOR_COMPARATOR.compare(dabSel2, DAB_SELECTOR)).isEqualTo(1);
+ }
+
+ @Test
+ public void compare_withDabSelectorsWithDifferentSIds() {
+ ProgramSelector.Identifier dabExtId2 = createDabSidExtId(DAB_SID_VALUE - 1,
+ DAB_ECC_VALUE, DAB_SCIDS_VALUE + 1);
+ ProgramSelector dabSel2 = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_DAB,
+ dabExtId2, new ProgramSelector.Identifier[]{DAB_FREQUENCY_IDENTIFIER,
+ DAB_ENSEMBLE_IDENTIFIER}, /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between DAB selectors with different SId values")
+ .that(SELECTOR_COMPARATOR.compare(dabSel2, DAB_SELECTOR)).isEqualTo(-1);
+ }
+
+ @Test
+ public void compare_withDabSelectorsWithDifferentSCIds() {
+ ProgramSelector.Identifier dabExtId2 = createDabSidExtId(DAB_SID_VALUE,
+ DAB_ECC_VALUE, DAB_SCIDS_VALUE + 1);
+ ProgramSelector dabSel2 = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_DAB,
+ dabExtId2, new ProgramSelector.Identifier[]{DAB_FREQUENCY_IDENTIFIER,
+ DAB_ENSEMBLE_IDENTIFIER}, /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between DAB selectors with different SCId values")
+ .that(SELECTOR_COMPARATOR.compare(dabSel2, DAB_SELECTOR)).isEqualTo(1);
+ }
+
+ @Test
+ public void compare_withDabSelectorsWithDifferentEnsembles() {
+ ProgramSelector.Identifier dabEnsembleId2 = new ProgramSelector.Identifier(
+ ProgramSelector.IDENTIFIER_TYPE_DAB_ENSEMBLE, DAB_ENSEMBLE_VALUE + 1);
+ ProgramSelector dabSel2 = new ProgramSelector(ProgramSelector.PROGRAM_TYPE_DAB,
+ DAB_DMB_SID_EXT_IDENTIFIER, new ProgramSelector.Identifier[]{
+ DAB_FREQUENCY_IDENTIFIER, dabEnsembleId2}, /* vendorIds= */ null);
+
+ mExpect.withMessage("Comparison between DAB selectors with different ensembles")
+ .that(SELECTOR_COMPARATOR.compare(dabSel2, DAB_SELECTOR)).isEqualTo(1);
+ }
+
+ @Test
+ public void compare_withSelectorsOfDifferentTypes() {
+ mExpect.withMessage("Comparison between HD and DAB selectors with different types")
+ .that(SELECTOR_COMPARATOR.compare(HD_SELECTOR, DAB_SELECTOR)).isEqualTo(-1);
+ }
+
+ private static ProgramSelector.Identifier createDabSidExtId(long sid, int ecc, int sCIdS) {
+ return new ProgramSelector.Identifier(ProgramSelector.IDENTIFIER_TYPE_DAB_DMB_SID_EXT,
+ ((long) sCIdS << 40) | ((long) ecc << 32) | sid);
+ }
}