diff --git a/tests/test_ranging.py b/tests/test_ranging.py
new file mode 100755
index 0000000000000000000000000000000000000000..87929921ef8762e21927d077c069f96016ebb732
--- /dev/null
+++ b/tests/test_ranging.py
@@ -0,0 +1,69 @@
+#! /usr/bin/env python3
+# -*- coding: utf-8 -*-
+# pylint: disable=missing-module-docstring
+
+import numpy as np
+from pytest import approx
+from lisainstrument import Instrument
+from lisaconstants import c
+
+
+def test_no_prn_ambiguity():
+    """Test that we can use MPRs without ambiguities."""
+
+    pprs = {
+        '12': 8.33242295, '23': 8.30282196, '31': 8.33242298,
+        '13': 8.33159404, '32': 8.30446786, '21': 8.33159402,
+    }
+
+    instru = Instrument(size=100, prn_ambiguity=None, orbits=pprs)
+    assert instru.prn_ambiguity is None
+    instru.disable_clock_noises()
+    instru.disable_ranging_noises()
+    instru.simulate()
+    for mosa in instru.MOSAS:
+        assert instru.mprs[mosa][50:] == approx(pprs[mosa])
+
+    # Setting `prn_ambiguity` to 0 is equivalent to using `None`
+    instru = Instrument(size=100, prn_ambiguity=0)
+    assert instru.prn_ambiguity is None
+
+def test_prn_ambiguity_with_static_orbits():
+    """Test that MPRs follow PRN cycle length for static orbits."""
+
+    pprs = {
+        '12': 8.33242295, '23': 8.30282196, '31': 8.33242298,
+        '13': 8.33159404, '32': 8.30446786, '21': 8.33159402,
+    }
+
+    instru = Instrument(size=100, prn_ambiguity=300E3)
+    assert instru.prn_ambiguity == approx(300E3)
+    instru.disable_clock_noises()
+    instru.disable_ranging_noises()
+    instru.simulate()
+    for mosa in instru.MOSAS:
+        assert instru.mprs[mosa][50:] == approx(pprs[mosa] % (300E3 / c))
+
+    instru = Instrument(size=100, prn_ambiguity=100E3)
+    assert instru.prn_ambiguity == approx(100E3)
+    instru.disable_clock_noises()
+    instru.disable_ranging_noises()
+    instru.simulate()
+    for mosa in instru.MOSAS:
+        assert instru.mprs[mosa][50:] == approx(pprs[mosa] % (100E3 / c))
+
+def test_prn_ambiguity_with_esa_orbits():
+    """Test that MPRs are below ambiguity for realistic orbits."""
+
+    instru = Instrument(
+        size=100, dt=2E5,
+        prn_ambiguity=300E3,
+        aafilter=None, physics_upsampling=1,
+        orbits='tests/esa-trailing-orbits-2-0-dev.h5')
+
+    instru.disable_clock_noises()
+    instru.disable_ranging_noises()
+    instru.simulate()
+
+    for mosa in instru.MOSAS:
+        assert np.all(instru.mprs[mosa][50:] <= 300E3 / c)