128 lines
5.3 KiB
Java
128 lines
5.3 KiB
Java
/*
|
|
* 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);
|
|
}
|
|
}
|