def test_baseline_ref_end(): # Check that it works with the last sdiff as the reference sat. This # should verify that the loop can terminate correctly sdiffs, ref_ecef = baseline_setup() ambs = bl.Ambiguities(n=4, sids=[{'sat': 5, 'code': 0}, {'sat': 1, 'code': 0}, {'sat': 2, 'code': 0}, {'sat': 3, 'code': 0}, {'sat': 4, 'code': 0}, # Remaining {'sat': 6, 'code': 0}, {'sat': 7, 'code': 0}, {'sat': 8, 'code': 0}, {'sat': 9, 'code': 0}, {'sat': 10, 'code': 0}, {'sat': 11, 'code': 0}], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) index = ambs.n old_snr_2 = sdiffs[index].snr s = sdiffs[index].to_dict() s.update({'snr': 22}) sdiffs[index] = SingleDiff(**s) code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert code == 0 assert num_used == 5 assert np.allclose(b, np.array([-0.589178, -0.35166, 0.0288157]))
def test_baseline_ref_middle(): # Check that it works with a middle sdiff as the reference sat. This # should verify that the induction works. sdiffs, ref_ecef = baseline_setup() ambs = bl.Ambiguities(n=4, sids=[{'sat': 1, 'code': 0}, {'sat': 2, 'code': 0}, {'sat': 3, 'code': 0}, {'sat': 4, 'code': 0}, {'sat': 5, 'code': 0}, # Remaining {'sat': 6, 'code': 0}, {'sat': 7, 'code': 0}, {'sat': 8, 'code': 0}, {'sat': 9, 'code': 0}, {'sat': 10, 'code': 0}, {'sat': 11, 'code': 0}], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) old_snr_2 = sdiffs[1].snr sdiffs[1] = SingleDiff(sid={'sat':2, 'code': 0}, pseudorange=0, sat_pos=np.array([1, 0, 0]), sat_vel=np.array([0, 0, 0]), doppler=0, carrier_phase=2, snr=22.0) code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert code == 0 assert num_used == 5 assert np.allclose(b, np.array([-0.622609, -0.432371, -0.00461595]))
def test_baseline_ref_first(): # Check that it works with the first sdiff as the reference # sat. This should verify that the loop can start correctly. ambs = bl.Ambiguities( n=4, sids=[ { 'sat': 1, 'code': 0 }, { 'sat': 2, 'code': 0 }, { 'sat': 3, 'code': 0 }, { 'sat': 4, 'code': 0 }, { 'sat': 5, 'code': 0 }, # Remaining { 'sat': 6, 'code': 0 }, { 'sat': 7, 'code': 0 }, { 'sat': 8, 'code': 0 }, { 'sat': 9, 'code': 0 }, { 'sat': 10, 'code': 0 }, { 'sat': 11, 'code': 0 } ], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) sdiffs, ref_ecef = baseline_setup() code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert valid == 0 assert num_used == 5 assert np.allclose(b, np.array([-0.742242, -0.492905, -0.0533294]))
def test_baseline_few_sats(): sdiffs, ref_ecef = baseline_setup() ambs = bl.Ambiguities( n=0, sids=[ { 'sat': 5, 'code': 0 }, { 'sat': 1, 'code': 0 }, { 'sat': 2, 'code': 0 }, { 'sat': 3, 'code': 0 }, { 'sat': 4, 'code': 0 }, # Remaining { 'sat': 6, 'code': 0 }, { 'sat': 7, 'code': 0 }, { 'sat': 8, 'code': 0 }, { 'sat': 9, 'code': 0 }, { 'sat': 10, 'code': 0 }, { 'sat': 11, 'code': 0 } ], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert num_used == 0 assert np.allclose(b, np.array([0, 0, 0])) assert code == -1
def test_baseline_few_sats(): sdiffs, ref_ecef = baseline_setup() ambs = bl.Ambiguities(n=0, sids=[{'sat': 5, 'code': 0}, {'sat': 1, 'code': 0}, {'sat': 2, 'code': 0}, {'sat': 3, 'code': 0}, {'sat': 4, 'code': 0}, # Remaining {'sat': 6, 'code': 0}, {'sat': 7, 'code': 0}, {'sat': 8, 'code': 0}, {'sat': 9, 'code': 0}, {'sat': 10, 'code': 0}, {'sat': 11, 'code': 0}], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert num_used == 0 assert np.allclose(b, np.array([0, 0, 0])) assert code == -1
def test_baseline_ref_first(): # Check that it works with the first sdiff as the reference # sat. This should verify that the loop can start correctly. ambs = bl.Ambiguities(n=4, sids=[{'sat': 1, 'code': 0}, {'sat': 2, 'code': 0}, {'sat': 3, 'code': 0}, {'sat': 4, 'code': 0}, {'sat': 5, 'code': 0}, # Remaining {'sat': 6, 'code': 0}, {'sat': 7, 'code': 0}, {'sat': 8, 'code': 0}, {'sat': 9, 'code': 0}, {'sat': 10, 'code': 0}, {'sat': 11, 'code': 0}], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) sdiffs, ref_ecef = baseline_setup() code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert valid == 0 assert num_used == 5 assert np.allclose(b, np.array([-0.742242, -0.492905, -0.0533294]))
def test_baseline_ref_end(): # Check that it works with the last sdiff as the reference sat. This # should verify that the loop can terminate correctly sdiffs, ref_ecef = baseline_setup() ambs = bl.Ambiguities( n=4, sids=[ { 'sat': 5, 'code': 0 }, { 'sat': 1, 'code': 0 }, { 'sat': 2, 'code': 0 }, { 'sat': 3, 'code': 0 }, { 'sat': 4, 'code': 0 }, # Remaining { 'sat': 6, 'code': 0 }, { 'sat': 7, 'code': 0 }, { 'sat': 8, 'code': 0 }, { 'sat': 9, 'code': 0 }, { 'sat': 10, 'code': 0 }, { 'sat': 11, 'code': 0 } ], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) index = ambs.n old_snr_2 = sdiffs[index].snr s = sdiffs[index].to_dict() s.update({'snr': 22}) sdiffs[index] = SingleDiff(**s) code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert code == 0 assert num_used == 5 assert np.allclose(b, np.array([-0.589178, -0.35166, 0.0288157]))
def test_baseline_ref_middle(): # Check that it works with a middle sdiff as the reference sat. This # should verify that the induction works. sdiffs, ref_ecef = baseline_setup() ambs = bl.Ambiguities( n=4, sids=[ { 'sat': 1, 'code': 0 }, { 'sat': 2, 'code': 0 }, { 'sat': 3, 'code': 0 }, { 'sat': 4, 'code': 0 }, { 'sat': 5, 'code': 0 }, # Remaining { 'sat': 6, 'code': 0 }, { 'sat': 7, 'code': 0 }, { 'sat': 8, 'code': 0 }, { 'sat': 9, 'code': 0 }, { 'sat': 10, 'code': 0 }, { 'sat': 11, 'code': 0 } ], ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])) old_snr_2 = sdiffs[1].snr sdiffs[1] = SingleDiff(sid={ 'sat': 2, 'code': 0 }, pseudorange=0, sat_pos=np.array([1, 0, 0]), sat_vel=np.array([0, 0, 0]), doppler=0, carrier_phase=2, snr=22.0) code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_) assert code == 0 assert num_used == 5 assert np.allclose(b, np.array([-0.622609, -0.432371, -0.00461595]))