Skip to content
Snippets Groups Projects
Commit b490633c authored by Jakhes's avatar Jakhes
Browse files

Adding mean_shift tests

parent 14d5ae8d
Branches
No related tags found
No related merge requests found
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
%% Perform mean shift clustering on the data, returning a list of cluster assignments and centroids. %% 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) :- meanShift(Radius, MaxIterations, DataList, DataRows, AssignmentsList, CentroidsList, ZCols, ForceConvergence, UseSeeds) :-
MaxIterations >= 0,
convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)), convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
meanShiftI(Radius, MaxIterations, X, Xsize, Xrownum, Y, Ysize, Z, ZCols, ZRows, ForceConvergence, UseSeeds), meanShiftI(Radius, MaxIterations, X, Xsize, Xrownum, Y, Ysize, Z, ZCols, ZRows, ForceConvergence, UseSeeds),
convert_float_array_to_list(Y, Ysize, AssignmentsList), convert_float_array_to_list(Y, Ysize, AssignmentsList),
......
...@@ -6,49 +6,41 @@ ...@@ -6,49 +6,41 @@
:- use_module(mean_shift). :- use_module(mean_shift).
:- use_module('../../helper_files/helper.pl'). :- 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 %% Failure Tests
test(testDescription, [error(domain_error('expectation' , culprit), _)]) :- test(mean_shift_Negative_MaxIterations, fail) :-
reset_Model_No_Train(perceptron), 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).
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(testDescription2, [error(_,system_error('The values of the Label have to start at 0 and be >= 0 and < the given numClass!'))]) :- test(mean_shift_Too_Few_Data_Points, fail) :-
reset_Model_No_Train(perceptron), meanShift(1, 1000, [5.1,3.5,1.4,4.9],4, _, _, _, 0, 0).
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, _).
%% Successful Tests %% Successful Tests
test(testDescription3, [true(Error =:= 1)]) :- test(mean_shift_Normal_Use) :-
reset_Model_No_Train(perceptron), 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),
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). print('\nAssignments: '),
print(AssignList),
print('\nCentroids: '),
print(CentroidsList).
test(testDescription4, [true(Error =:= 0.9797958971132711)]) :- test(mean_shift_CSV_Input) :-
reset_Model_No_Train(perceptron),
open('src/data_csv/iris2.csv', read, File), open('src/data_csv/iris2.csv', read, File),
take_csv_row(File, skipFirstRow,10, Data), 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_mean_shift_tests :-
run_tests. run_tests.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment