unplugged-system/packages/modules/Uwb/service/support_lib/test/DlTDoATests.java

128 lines
5.3 KiB
Java
Raw Normal View History

/*
* 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.
*/
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import com.google.uwb.support.dltdoa.DlTDoAMeasurement;
import com.google.uwb.support.dltdoa.DlTDoARangingRoundsUpdate;
import com.google.uwb.support.dltdoa.DlTDoARangingRoundsUpdateStatus;
import org.junit.Test;
import org.junit.runner.RunWith;
@SmallTest
@RunWith(AndroidJUnit4.class)
public class DlTDoATests {
@Test
public void dlTDoAMeasurementTest() {
int messageType = 0x02;
int messageControl = 0x513;
int blockIndex = 4;
int roundIndex = 6;
int nLoS = 40;
long txTimestamp = 40_000L;
long rxTimestamp = 50_000L;
float anchorCfo = 433.33f;
float cfo = 56.33f;
long initiatorReplyTime = 100;
long responderReplyTime = 200;
int initiatorResponderTof = 400;
byte[] anchorLocation = new byte[]{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
byte[] activeRangingRounds = new byte[]{0x01, 0x02};
DlTDoAMeasurement dlTDoAMeasurement = new DlTDoAMeasurement.Builder()
.setMessageType(messageType)
.setMessageControl(messageControl)
.setBlockIndex(blockIndex)
.setRoundIndex(roundIndex)
.setNLoS(nLoS)
.setTxTimestamp(txTimestamp)
.setRxTimestamp(rxTimestamp)
.setAnchorCfo(anchorCfo)
.setCfo(cfo)
.setInitiatorReplyTime(initiatorReplyTime)
.setResponderReplyTime(responderReplyTime)
.setInitiatorResponderTof(initiatorResponderTof)
.setAnchorLocation(anchorLocation)
.setActiveRangingRounds(activeRangingRounds)
.build();
DlTDoAMeasurement fromBundle = DlTDoAMeasurement.fromBundle(dlTDoAMeasurement.toBundle());
assertEquals(fromBundle.getMessageType(), messageType);
assertEquals(fromBundle.getMessageControl(), messageControl);
assertEquals(fromBundle.getBlockIndex(), blockIndex);
assertEquals(fromBundle.getRoundIndex(), roundIndex);
assertEquals(fromBundle.getNLoS(), nLoS);
assertEquals(fromBundle.getTxTimestamp(), txTimestamp);
assertEquals(fromBundle.getRxTimestamp(), rxTimestamp);
assertEquals(fromBundle.getAnchorCfo(), anchorCfo, 0.0);
assertEquals(fromBundle.getCfo(), cfo, 0.0);
assertEquals(fromBundle.getInitiatorReplyTime(), initiatorReplyTime);
assertEquals(fromBundle.getResponderReplyTime(), responderReplyTime);
assertEquals(fromBundle.getInitiatorResponderTof(), initiatorResponderTof);
assertArrayEquals(fromBundle.getAnchorLocation(), anchorLocation);
assertArrayEquals(fromBundle.getActiveRangingRounds(), activeRangingRounds);
}
@Test
public void dlTDoARangingRoundsUpdateTest() {
int sessionId = 1234;
int noOfActiveRangingRounds = 3;
byte[] rangingRoundIndexes = new byte[]{0x01, 0x02, 0x03};
DlTDoARangingRoundsUpdate dlTDoARangingRoundsUpdate = new DlTDoARangingRoundsUpdate
.Builder()
.setSessionId(sessionId)
.setNoOfRangingRounds(noOfActiveRangingRounds)
.setRangingRoundIndexes(rangingRoundIndexes)
.build();
DlTDoARangingRoundsUpdate fromBundle = DlTDoARangingRoundsUpdate.fromBundle(
dlTDoARangingRoundsUpdate.toBundle());
assertEquals(fromBundle.getSessionId(), sessionId);
assertEquals(fromBundle.getNoOfRangingRounds(), noOfActiveRangingRounds);
assertArrayEquals(fromBundle.getRangingRoundIndexes(), rangingRoundIndexes);
}
@Test
public void dlTDoARangingRoundsUpdateStatusTest() {
int status = 1;
int noOfActiveRangingRounds = 2;
byte[] rangingRoundIndexes = new byte[]{0x02, 0x03};
DlTDoARangingRoundsUpdateStatus dlTDoARangingRoundsUpdateStatus =
new DlTDoARangingRoundsUpdateStatus.Builder()
.setStatus(status)
.setNoOfRangingRounds(noOfActiveRangingRounds)
.setRangingRoundIndexes(rangingRoundIndexes)
.build();
DlTDoARangingRoundsUpdateStatus fromBundle = DlTDoARangingRoundsUpdateStatus.fromBundle(
dlTDoARangingRoundsUpdateStatus.toBundle());
assertEquals(fromBundle.getStatus(), status);
assertEquals(fromBundle.getNoOfRangingRounds(), noOfActiveRangingRounds);
assertArrayEquals(fromBundle.getRangingRoundIndexes(), rangingRoundIndexes);
}
}