blob: 5a009a0f5679912dd51cbff7929085866dd0df2a [file] [log] [blame]
/*
* Copyright (C) 2022 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 com.android.server.uwb.data;
import static com.android.server.uwb.data.UwbUciConstants.RANGING_MEASUREMENT_TYPE_TWO_WAY;
import static com.android.server.uwb.util.UwbUtil.convertFloatToQFormat;
import static com.google.common.truth.Truth.assertThat;
import android.platform.test.annotations.Presubmit;
import android.test.suitebuilder.annotation.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.google.uwb.support.fira.FiraParams;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
/**
* Unit tests for {@link com.android.server.uwb.data.UwbRangingData}.
*/
@RunWith(AndroidJUnit4.class)
@SmallTest
@Presubmit
public class UwbRangingDataTest {
private static final long TEST_SEQ_COUNTER = 5;
private static final long TEST_SESSION_ID = 7;
private static final int TEST_RCR_INDICATION = 7;
private static final long TEST_CURR_RANGING_INTERVAL = 100;
private static final int TEST_RANGING_MEASURES_TYPE = RANGING_MEASUREMENT_TYPE_TWO_WAY;
private static final int TEST_MAC_ADDRESS_MODE = 1;
private static final byte[] TEST_MAC_ADDRESS = {0x1, 0x3};
private static final int TEST_STATUS = FiraParams.STATUS_CODE_OK;
private static final int TEST_LOS = 0;
private static final int TEST_DISTANCE = 101;
private static final float TEST_AOA_AZIMUTH = 67;
private static final int TEST_AOA_AZIMUTH_FOM = 50;
private static final float TEST_AOA_ELEVATION = 37;
private static final int TEST_AOA_ELEVATION_FOM = 90;
private static final float TEST_AOA_DEST_AZIMUTH = 67;
private static final int TEST_AOA_DEST_AZIMUTH_FOM = 50;
private static final float TEST_AOA_DEST_ELEVATION = 37;
private static final int TEST_AOA_DEST_ELEVATION_FOM = 90;
private static final int TEST_SLOT_IDX = 10;
private static final int TEST_RSSI = -1;
private UwbRangingData mUwbRangingData;
@Test
public void testInitializeUwbRangingData() throws Exception {
final int noOfRangingMeasures = 1;
final byte[] rawNtfData = {0x10, 0x01};
final UwbTwoWayMeasurement[] uwbTwoWayMeasurements =
new UwbTwoWayMeasurement[noOfRangingMeasures];
uwbTwoWayMeasurements[0] = new UwbTwoWayMeasurement(TEST_MAC_ADDRESS, TEST_STATUS, TEST_LOS,
TEST_DISTANCE, convertFloatToQFormat(TEST_AOA_AZIMUTH, 9, 7),
TEST_AOA_AZIMUTH_FOM, convertFloatToQFormat(TEST_AOA_ELEVATION, 9, 7),
TEST_AOA_ELEVATION_FOM, convertFloatToQFormat(TEST_AOA_DEST_AZIMUTH, 9, 7),
TEST_AOA_DEST_AZIMUTH_FOM, convertFloatToQFormat(TEST_AOA_DEST_ELEVATION, 9, 7),
TEST_AOA_DEST_ELEVATION_FOM, TEST_SLOT_IDX, TEST_RSSI);
mUwbRangingData = new UwbRangingData(TEST_SEQ_COUNTER, TEST_SESSION_ID,
TEST_RCR_INDICATION, TEST_CURR_RANGING_INTERVAL, TEST_RANGING_MEASURES_TYPE,
TEST_MAC_ADDRESS_MODE, noOfRangingMeasures, uwbTwoWayMeasurements, rawNtfData);
assertThat(mUwbRangingData.getSequenceCounter()).isEqualTo(TEST_SEQ_COUNTER);
assertThat(mUwbRangingData.getSessionId()).isEqualTo(TEST_SESSION_ID);
assertThat(mUwbRangingData.getRcrIndication()).isEqualTo(TEST_RCR_INDICATION);
assertThat(mUwbRangingData.getCurrRangingInterval()).isEqualTo(TEST_CURR_RANGING_INTERVAL);
assertThat(mUwbRangingData.getRangingMeasuresType()).isEqualTo(TEST_RANGING_MEASURES_TYPE);
assertThat(mUwbRangingData.getMacAddressMode()).isEqualTo(TEST_MAC_ADDRESS_MODE);
assertThat(mUwbRangingData.getNoOfRangingMeasures()).isEqualTo(1);
assertThat(mUwbRangingData.getRawNtfData()).isEqualTo(rawNtfData);
final String testString = "UwbRangingData { "
+ " SeqCounter = " + TEST_SEQ_COUNTER
+ ", SessionId = " + TEST_SESSION_ID
+ ", RcrIndication = " + TEST_RCR_INDICATION
+ ", CurrRangingInterval = " + TEST_CURR_RANGING_INTERVAL
+ ", RangingMeasuresType = " + TEST_RANGING_MEASURES_TYPE
+ ", MacAddressMode = " + TEST_MAC_ADDRESS_MODE
+ ", NoOfRangingMeasures = " + noOfRangingMeasures
+ ", RangingTwoWayMeasures = " + Arrays.toString(uwbTwoWayMeasurements)
+ ", RawNotificationData = " + Arrays.toString(rawNtfData)
+ '}';
assertThat(mUwbRangingData.toString()).isEqualTo(testString);
}
}