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

Adding mean_shift tests

parent 14d5ae8d
No related branches found
No related tags found
No related merge requests found
......@@ -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),
......
......@@ -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.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment