diff --git a/src/methods/mean_shift/mean_shift.pl b/src/methods/mean_shift/mean_shift.pl
index b1c70371dfe874af39b16a110b2c945e44c18486..2ce39bee7afdd262a04cac203cf7dfb72e0aad2d 100644
--- a/src/methods/mean_shift/mean_shift.pl
+++ b/src/methods/mean_shift/mean_shift.pl
@@ -32,6 +32,7 @@
 %%              Perform mean shift clustering on the data, returning a list of cluster assignments and centroids.
 %%
 meanShift(Radius, MaxIterations, DataList, DataRows, AssignmentsList, CentroidsList, ZCols, ForceConvergence, UseSeeds) :-
+        MaxIterations >= 0,
         convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
         meanShiftI(Radius, MaxIterations, X, Xsize, Xrownum, Y, Ysize, Z, ZCols, ZRows, ForceConvergence, UseSeeds),
         convert_float_array_to_list(Y, Ysize, AssignmentsList),
diff --git a/src/methods/mean_shift/mean_shift_test.pl b/src/methods/mean_shift/mean_shift_test.pl
index 43d02d1830d6fe5eef037c9d929743a01446c892..41a6a05fa5ce9c88b58f99975e1a3fae0d936e3a 100644
--- a/src/methods/mean_shift/mean_shift_test.pl
+++ b/src/methods/mean_shift/mean_shift_test.pl
@@ -6,49 +6,41 @@
 :- use_module(mean_shift).
 :- use_module('../../helper_files/helper.pl').
 
-:- begin_tests(lists).
 
-test(meanShift) :-
-        convert_list_to_float_array([5.1,3.5,1.4,4.9,3.0,1.4,4.7,3.2,1.3,4.6,3.1,1.5, 1.4, 3.0, 2.1, 0.1],4, array(Xsize, Xrownum, X)),
-        meanShift(1, 1000, X, Xsize, Xrownum, Assign, Assignsize, Centroids, Centroidscolnum, Centroidsrownum, 0, 0),
-        print(Assignsize),
-        convert_float_array_to_list(Assign, Assignsize, ResultsAssign),
-        print(ResultsAssign),
-        print(Centroidscolnum),
-        convert_float_array_to_2d_list(Centroids, Centroidscolnum, Centroidsrownum, Results),
-        print(Results).
-
-:- end_tests(lists).
 
 %%
-%% TESTING predicate predicate/10
+%% TESTING predicate meanShift/10
 %%
-:- begin_tests(predicate).      
+:- begin_tests(meanShift).      
 
 %% Failure Tests
                                             
-test(testDescription, [error(domain_error('expectation' , culprit), _)]) :-
-        reset_Model_No_Train(perceptron),
-        train([5.1,3.5,1.4,4.9,3.0,1.4,4.7,3.2,1.3,4.6,3.1,1.5], 3, [0,0,0,0], 2, culprit, 50, 0.0001, _).
+test(mean_shift_Negative_MaxIterations, fail) :-
+        meanShift(1, -1000, [5.1,3.5,1.4,4.9, 3.0,1.4,4.7,3.2, 1.3,4.6,3.1,1.5, 1.4,3.0,2.1,0.1],4, _, _, _, 0, 0).
 
-test(testDescription2, [error(_,system_error('The values of the Label have to start at 0 and be >= 0 and < the given numClass!'))]) :-
-        reset_Model_No_Train(perceptron),
-        train([5.1,3.5,1.4,4.9,3.0,1.4,4.7,3.2,1.3,4.6,3.1,1.5], 3, [0,1,0,2], 2, perceptron, 50, 0.0001, _).
+test(mean_shift_Too_Few_Data_Points, fail) :-
+        meanShift(1, 1000, [5.1,3.5,1.4,4.9],4, _, _, _, 0, 0).
         
 
 %% Successful Tests
 
-test(testDescription3, [true(Error =:= 1)]) :-
-        reset_Model_No_Train(perceptron),
-        train([5.1,3.5,1.4,4.9,3.0,1.4,4.7,3.2,1.3,4.6,3.1,1.5], 3, [0,0,0,0], 2, perceptron, 50, 0.0001, Error).
+test(mean_shift_Normal_Use) :-
+        meanShift(1, 1000, [5.1,3.5,1.4,4.9, 3.0,1.4,4.7,3.2, 1.3,4.6,3.1,1.5, 1.4,3.0,2.1,0.1],4, AssignList, CentroidsList, _, 0, 0),
+        print('\nAssignments: '),
+        print(AssignList),
+        print('\nCentroids: '),
+        print(CentroidsList).
 
-test(testDescription4, [true(Error =:= 0.9797958971132711)]) :-
-        reset_Model_No_Train(perceptron),
+test(mean_shift_CSV_Input) :-
         open('src/data_csv/iris2.csv', read, File),
         take_csv_row(File, skipFirstRow,10, Data),
-        train(Data, 4, [0,1,0,1,1,0,1,1,1,0], 2, perceptron, 50, 0.0001, Error).
+        meanShift(0.5, 500, Data,4, AssignList, CentroidsList, _, 1, 1),
+        print('\nAssignments: '),
+        print(AssignList),
+        print('\nCentroids: '),
+        print(CentroidsList).
 
-:- end_tests(predicate).
+:- end_tests(meanShift).
 
 run_mean_shift_tests :-
         run_tests.