diff --git a/tests/test_bunch.py b/tests/test_bunch.py
index 7c1499a6af032b73f44a5f375cfb669f6c3861ce..17ffd332a637e8f711f59eb42146dd1a475dd3ef 100644
--- a/tests/test_bunch.py
+++ b/tests/test_bunch.py
@@ -70,4 +70,37 @@ def test_bunch_plots(mybunch):
     mybunch.plot_phasespace()
     mybunch.plot_profile()
     assert True
+def test_bunch_emittance(demo_ring):
+    mp_number = 1_000_000
+    current = 1.2e-3
+    mybunch = Bunch(demo_ring, mp_number=mp_number, current=current, 
+                    track_alive=False)    
+    mybunch.init_gaussian()
+    np.testing.assert_allclose(mybunch.emit[0], demo_ring.emit[0], rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {demo_ring.emit[0]} initialised, {mybunch.emit[0]:} calculated')
+    np.testing.assert_allclose(mybunch.emit[1], demo_ring.emit[1], rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {demo_ring.emit[1]} initialised, {mybunch.emit[1]:} calculated')
+
+    np.testing.assert_allclose(mybunch.emit[0], mybunch.cs_invariant[0]/2, rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {mybunch.cs_invariant[0]/2} calculated with optics functions, {mybunch.emit[0]:} calculated with coordinates only')
+    np.testing.assert_allclose(mybunch.emit[1], mybunch.cs_invariant[1]/2, rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {mybunch.cs_invariant[1]/2} calculated with optics functions, {mybunch.emit[1]:} calculated with coordinates only')
+    
+
+def test_bunch_emittance_with_dispersion(demo_ring):
+    mp_number = 1_000_000
+    current = 1.2e-3
+    demo_ring.optics.local_dispersion = np.array([1e-2, 1e-3, 1e-2, 1e-3])
+    mybunch = Bunch(demo_ring, mp_number=mp_number, current=current, 
+                    track_alive=False)    
+    mybunch.init_gaussian()
+    np.testing.assert_allclose(mybunch.emit[0], demo_ring.emit[0], rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {demo_ring.emit[0]} initialised, {mybunch.emit[0]:} calculated')
+    np.testing.assert_allclose(mybunch.emit[1], demo_ring.emit[1], rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {demo_ring.emit[1]} initialised, {mybunch.emit[1]:} calculated')
+
+    np.testing.assert_allclose(mybunch.emit[0], mybunch.cs_invariant[0]/2, rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {mybunch.cs_invariant[0]/2} calculated with optics functions, {mybunch.emit[0]:} calculated with coordinates only')
+    np.testing.assert_allclose(mybunch.emit[1], mybunch.cs_invariant[1]/2, rtol=0, atol=1e-13,
+     err_msg=f'Emittances do not match. {mybunch.cs_invariant[1]/2} calculated with optics functions, {mybunch.emit[1]:} calculated with coordinates only')
     
\ No newline at end of file