diff --git a/.gitignore b/.gitignore
index ec0c699b894813436349ed7062d642b7dd8554a6..3f31d183b87b61f6e60874a76330981b60b864b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-*__pycache__
+*__pycache__
 .vscode/
\ No newline at end of file
diff --git a/__main__.py b/__main__.py
index 5f4eb69063d440fccdaceda7142f0e1e49b1420b..f21af91b2d9bac533992c0f35e09d136583e2732 100644
--- a/__main__.py
+++ b/__main__.py
@@ -8,10 +8,11 @@ import matrices
 print("Hi World!")
 
 ## Tests
+print("###------ Portes anticommutantes ------")
+source = elements.Source(initial_vector = np.array([1. + 0j, 0.]))
 
-source = elements.Source(initial_vector = np.array([1.+0j, 0.]))
+BS1 = elements.BeamSplitter(previous = {"left": None, "right": (source, "left")}, matrix=matrices.HALF_MIRROR_LEFT_ACTIVE)
 
-BS1 = elements.BeamSplitter(previous = {"left": (source, "left"), "right": None}, matrix=matrices.HALF_MIRROR_LEFT_INACTIVE)
 
 X_left_1 = elements.Plate(previous = (BS1, "left"), jones_matrix=matrices.X)
 Z_left_2 = elements.Plate(previous = (X_left_1, "left"), jones_matrix = matrices.Z)
@@ -20,10 +21,31 @@ Z_left_2 = elements.Plate(previous = (X_left_1, "left"), jones_matrix = matrices
 Z_right_1 = elements.Plate(previous = (BS1, "right"), jones_matrix = matrices.Z)
 X_right_2 = elements.Plate(previous = (Z_right_1, "left"), jones_matrix = matrices.X)
 
-BS2 = elements.BeamSplitter(previous = {"left": (Z_left_2, "left"), "right": (X_right_2, "left")}, matrix = matrices.HALF_MIRROR_RIGHT_INACTIVE)
+BS2 = elements.BeamSplitter(previous = {"left": (Z_left_2, "left"), "right": (X_right_2, "left")}, matrix = matrices.HALF_MIRROR_RIGHT_ACTIVE)
 
 screen_right = elements.Screen(previous = (BS2, "right"))
 screen_left = elements.Screen(previous = (BS2, "left"))
 
-screen_right.show("right")
 screen_left.show("left")
+screen_right.show("right")
+
+print("### ------ Portes commutantes ------")
+
+source2 = elements.Source(initial_vector = np.array([1.+0j, 0.]))
+
+BS12 = elements.BeamSplitter(previous = {"left": (source2, "left"), "right": None}, matrix=matrices.SYM_BS_INACTIVE)
+
+Phase_left_12 = elements.Plate(previous = (BS12, "left"), jones_matrix=matrices.PHASE(np.pi/5))
+Z_left_22 = elements.Plate(previous = (Phase_left_12, "left"), jones_matrix = matrices.Z)
+
+
+Z_right_12 = elements.Plate(previous = (BS12, "right"), jones_matrix = matrices.Z)
+Phase_right_22 = elements.Plate(previous = (Z_right_12, "left"), jones_matrix = matrices.PHASE(np.pi/5))
+
+BS22 = elements.BeamSplitter(previous = {"left": (Z_left_22, "left"), "right": (Phase_right_22, "left")}, matrix = matrices.SYM_BS_INACTIVE)
+
+screen_right2 = elements.Screen(previous = (BS22, "right"))
+screen_left2 = elements.Screen(previous = (BS22, "left"))
+
+screen_left2.show("left")
+screen_right2.show("right")
diff --git a/matrices.py b/matrices.py
index bbd647400f1edb182260b6db27714966431e00cb..6662709505efd4b1c7466d70c844c5fd34284a97 100644
--- a/matrices.py
+++ b/matrices.py
@@ -59,10 +59,10 @@ SYM_BS_INACTIVE = np.kron(SYM_BS_AMPLITUDE_MATRIX, np.eye(2))
 HALF_MIRROR_LEFT_INACTIVE = np.kron(HALF_MIRROR_LEFT_PLATE_AMPLITUDE_MATRIX, np.eye(2))
 HALF_MIRROR_RIGHT_INACTIVE = np.kron(HALF_MIRROR_RIGHT_PLATE_AMPLITUDE_MATRIX, np.eye(2))
 
-SYM_BS_INACTIVE = (1/np.sqrt(2))*np.array([[1j, 0,   1,   0],
-                                           [0,  -1j,   0,   1],
-                                           [1,   0, 1j,   0],
-                                           [0,   1,   0,  -1j]], dtype='complex')
+SYM_BS_ACTIVE = (1/np.sqrt(2))*np.array([[-1j, 0,   1,   0],
+                                           [0,  1j,   0,   1],
+                                           [1,   0, -1j,   0],
+                                           [0,   1,   0,  1j]], dtype='complex')
 
 HALF_MIRROR_LEFT_ACTIVE = (1/np.sqrt(2))*np.array([[-1,  0,   1,   0],
                                                    [0,   1,   0,   1],