diff --git a/tests/Test.m b/tests/Test.m
index b39e3f6c0ad0513085ea43ea9f3f567acd82ba98..62c2a53a27067b8bef2ba74f45f03a1ccdcfaec4 100644
--- a/tests/Test.m
+++ b/tests/Test.m
@@ -9,22 +9,24 @@ classdef Test < Config
         rows double  % Number of rows for random matrix
         cols double  % Number of columns for random matrix
         e double 
+        randomMatrix double
+        randomVect double
+        nonDependentProp double
     end
 
     properties(SetAccess = protected)
         d   double
     end
 
-    properties(Dependent)
-        randomMatrix
-        randomVect
-    end
-
     properties(Access = protected)
         configName = '';
         mission Mission
     end
 
+    properties (Dependent)
+        dependentProp 
+    end
+
     methods
         function obj = Test(a, b, c, d, rows, cols)
             obj.a = a;
@@ -33,14 +35,13 @@ classdef Test < Config
             obj.d = d;
             obj.rows = rows;  % Set rows
             obj.cols = cols;  % Set cols
+            obj.randomMatrix = obj.a * randn(obj.rows, obj.cols);
+            obj.randomVect = obj.randomMatrix(1,:);
+            obj.nonDependentProp = obj.a^(obj.b) + obj.c;
         end
 
-        function randomMatrix = get.randomMatrix(obj)
-            randomMatrix = obj.a * randn(obj.rows, obj.cols);
-        end
-
-        function randomVect = get.randomVect(obj)
-            randomVect = obj.randomMatrix(1,:);
+        function dependentProp = get.dependentProp(obj)
+            dependentProp = obj.a^(obj.b) + obj.c;
         end
     end
 end
diff --git a/tests/dataSpeed.mat b/tests/dataSpeed.mat
index 0eb49fdf8370cdc0cb80f875c7c1c6192ca31387..f77792ed25b6479a9b087daf0ec2712568942345 100644
--- a/tests/dataSpeed.mat
+++ b/tests/dataSpeed.mat
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:66a0de3e874d8c280bdea780291cd24128be24983af59683ff246bf2c98ba946
-size 29105
+oid sha256:c6aa949ebce91d4c7e5da9fd77fa7d7b972a01e094492dc117b9e965bdb27f90
+size 33429
diff --git a/tests/operations/dependentSpeed.m b/tests/operations/dependentSpeed.m
new file mode 100644
index 0000000000000000000000000000000000000000..817a710aa5f7f3a466b5c647a1a745981fecf6c0
--- /dev/null
+++ b/tests/operations/dependentSpeed.m
@@ -0,0 +1,22 @@
+function dependentTime = dependentSpeed(times,len)
+    testClass = Test(1, 2, 3, 4, len, len);
+    
+    arr1 = zeros(1, len);
+    arr2 = zeros(1, len);
+
+    tic  
+    for k = 1:length(times)
+        for j = 1:times(k)
+            arr1(j) = testClass.dependentProp;
+        end
+    end
+    dependentTime.dependent = toc;
+    
+    tic  
+    for k = 1:length(times)
+        for j = 1:times(k)
+            arr2(j) = testClass.nonDependentProp;
+        end
+    end
+    dependentTime.nonDependent = toc;
+end
\ No newline at end of file
diff --git a/tests/speedBenchmarkConfig.m b/tests/speedBenchmarkConfig.m
index dced1b2a34df7e7bee34abb844c0b6835da2db35..96bf14183fcb13a3e6b21fecabd5ceb08a5ffe92 100644
--- a/tests/speedBenchmarkConfig.m
+++ b/tests/speedBenchmarkConfig.m
@@ -42,6 +42,17 @@ for i = 1:length(vct)
 end
 clear temp
 
+%% Dependent vs non dependent time
+dep.dependentTime = [];
+dep.dependentRatio = [];
+
+for i = 1:length(vct)
+    temp = dependentSpeed(vct(i), vct(i));
+    dep.dependentTime = [dep.dependentTime temp]; %#ok<*AGROW>
+    dep.dependentRatio = [dep.dependentRatio temp.dependent/temp.nonDependent]; 
+end
+clear temp
+
 %% Scalar product time
 scalar.scalarProductTime = [];
 scalar.scalarProductRatio = [];
diff --git a/tests/speedBenchmarkPlot.m b/tests/speedBenchmarkPlot.m
index 4cff71212e49e44b5769e203d5e394c74148341d..dcdda19214eee875a86515cb247cd88a4e49c920 100644
--- a/tests/speedBenchmarkPlot.m
+++ b/tests/speedBenchmarkPlot.m
@@ -16,6 +16,9 @@ load('dataSpeed.mat')
 %% Assignment time element wise
 [~, ~] = speedPlots(assignment.assignmentTime, assignment.assignmentRatio, vct, 'Assignment element wise');
 
+%% Dependent
+[~, ~] = speedPlots(dep.dependentTime, dep.dependentRatio, vct, 'Dependent vs non dependent time');
+
 %% Scalar product
 [~, ~] = speedPlots(scalar.scalarProductTime, scalar.scalarProductRatio, vct, 'Scalar product');
 
diff --git a/tests/speedPlots.m b/tests/speedPlots.m
index bd67118aee9a337cf91eabe572a009af4da51f35..8b74a073e08b5506bdc2b4eddd48c9a0b0c95af5 100644
--- a/tests/speedPlots.m
+++ b/tests/speedPlots.m
@@ -4,6 +4,36 @@ function [pltConfig, plt] = speedPlots(obj1, obj2, vct, name)
     speedPlotsFig = figure;
     tabgp   = uitabgroup(speedPlotsFig);
 
+    if strcmp(name,'Dependent vs non dependent time')
+        tab    = uitab(tabgp,'Title','Time');
+        axes('parent', tab)
+        for i = 1:length(vct)
+            semilogx(vct(i), obj1(i).dependent, '.' ,'Color', pltConfig.stdBlue)
+            semilogx(vct(i), obj1(i).nonDependent, '.', 'Color', pltConfig.stdRed)
+            hold on
+        end
+        pltConfig.lgdDependent = plot(nan, nan, 'color', pltConfig.stdBlue);
+        pltConfig.lgdNonDependent = plot(nan, nan, 'color', pltConfig.stdRed);
+        title(strcat(name,' time'));
+        xlabel('Number of elements')
+        ylabel('Speed [s]')
+        legend([pltConfig.lgdDependent, pltConfig.lgdNonDependent], {'Dependent', 'Non dependent'})
+        grid on
+        
+        tab    = uitab(tabgp,'Title','Ratio');
+        axes('parent', tab) 
+        x = 10:0.1:1000;
+        plt.readPlot = semilogx(vct, obj2);
+        hold on
+        plt.regrPlot = plot(x,polyval(polyfit(vct, obj2, 10),x), 'k--');
+        title(strcat(name,' time ratio'));
+        xlabel('Number of elements')
+        ylabel('Ratio')
+        legend([plt.readPlot, plt.regrPlot], {'Ratio','Regression'})
+        grid on
+        return
+    end
+
     if strcmp(name,'Assignment element wise')
         tab    = uitab(tabgp,'Title','Time');
         axes('parent', tab)