diff --git a/library/cadbiom/models/clause_constraints/mcl/TestMCLAnalyser.py b/library/cadbiom/models/clause_constraints/mcl/TestMCLAnalyser.py
index 1a5ba92696016b86fadd95503b6fefdc2aa27d4b..f00bba9407f90e6f9adfcbbf6761fb5070573d08 100644
--- a/library/cadbiom/models/clause_constraints/mcl/TestMCLAnalyser.py
+++ b/library/cadbiom/models/clause_constraints/mcl/TestMCLAnalyser.py
@@ -46,6 +46,7 @@ from __future__ import print_function
 import pkg_resources
 import unittest
 import os
+import itertools as it
 
 from cadbiom.models.clause_constraints.mcl.MCLAnalyser import MCLAnalyser
 from cadbiom.models.guard_transitions.simulator.chart_simul import ChartSimulator
@@ -476,48 +477,64 @@ class TestMCLAnaLyzer(unittest.TestCase):
         res = set(lsol) == set(lsol2)
         self.assert_(not res, 'Error dimacs_frontier: solutions not different')
 
-    @unittest.skip("Test files not provided")
-    def test_prune(self):
-        """
-        pruning a solution
-        """
+
+    def test_solution_pruning(self):
+        """Pruning a solution by trying to get a new solution with a smaller
+        number of active frontier places"""
         rep = ErrorRep()
         mcla = MCLAnalyser(rep)
-        prop = 'p15INK4b and p21CIP1'
+        prop = "p15INK4b and p21CIP1"
         query = MCLSimpleQuery(None, None, prop)
 
-        mcla.build_from_chart_file("../ucl/examples/tgf_211011_man.bcx")
+        filename = pkg_resources.resource_filename(
+            __name__, # package name
+            "../../guard_transitions/translators/tests/tgf_cano_noclock_cmp.cal"
+        )
+        mcla.build_from_cadlang(filename)
+
         # lsol: list<dimacs frontier solution>
-        lsol = mcla.__sq_dimacs_frontier_solutions(query, 8, 10)
+        lsol = mcla._MCLAnalyser__sq_dimacs_frontier_solutions(query, 8, 10)
         small_sol = mcla.less_activated_solution(lsol)
-        cpt1 = 0
-        for varcod in small_sol.get_solution():
+
+        # Count number of activated frontiers
+        activated_frontiers_old_method = 0
+        for varcod in small_sol.frontier_values:
             if varcod > 0:
-                cpt1 += 1
-        # check solution
-        start = []
-        for ssol in small_sol.frontier_values:
-            start.append([ssol])
+                activated_frontiers_old_method += 1
+        activated_frontiers_1 = small_sol.nb_activated_frontiers
+        self.assertEqual(activated_frontiers_old_method, activated_frontiers_1)
+
+        # Check solution
+        # Reload frontiers (activated and unactivated)
+        # PS: quiet deprecated: usually, we just put negative values of frontiers
+        start = [[var] for var in small_sol.frontier_values]
         query.dim_start = start
         res = mcla.sq_is_satisfiable(query, 8)
         self.assert_(res, 'Small sol is not a solution')
-        # find if there are solutions with same unactivated places
-        for ssol in small_sol.frontier_values:
-            if ssol < 0:
-                start.append([ssol])
-        query.dim_start = start
+
+        # Find if there are solutions when forcing unactivated fontiers
+        old_negative_fronts = [[var] for var in small_sol.frontier_values if var < 0]
+        negative_fronts = \
+            [[var] for var in
+             mcla.unfolder.frontiers_negative_values & small_sol.frontier_values]
+        assert set(it.chain(*negative_fronts)) == set(it.chain(*old_negative_fronts))
+
+        # In practice we just append the clause of unactivated frontiers
+        # But query.dim_start contains nothing but user settings (here it
+        # contains the status of the border places of the previous solution)
+        query.dim_start = negative_fronts
         res = mcla.sq_is_satisfiable(query, 8)
         self.assert_(res, 'No solution with same unactivated places')
-        pruned = mcla.__prune_frontier_solution(small_sol, query, 8)
-        # compare sizes
-        cpt2 = 0
-        for varcod in prune.get_solution():
-            if varcod > 0:
-                cpt2 += 1
-        res = (cpt2 <= cpt1)
-        self.assert_(res, 'Prune did not reduce nb of activated places')
 
+        # Prune small_sol
+        pruned = mcla._MCLAnalyser__prune_frontier_solution(small_sol, query, 8)
 
+        # Compare sizes
+        self.assertLessEqual(
+            pruned.nb_activated_frontiers,
+            activated_frontiers_1,
+            msg="Prune did not reduce nb of activated places"
+        )
 
 
     def test_mac_no_clock(self):