From ed9787fd9f589b8ba9c799ccca53d3dba2ba99a3 Mon Sep 17 00:00:00 2001
From: Martin Rusek <martin.rusek@vsb.cz>
Date: Tue, 5 Dec 2017 15:45:58 +0100
Subject: [PATCH] update: replaced numerical operation switch cases to enum
 cases

---
 SequenceComparison/distancet.h   | 15 +++++++++++----
 SequenceComparison/operation.cpp | 16 ++++++++--------
 SequenceComparison/operation.h   |  7 +++++++
 SequenceComparison/parameter.h   |  2 +-
 4 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/SequenceComparison/distancet.h b/SequenceComparison/distancet.h
index 8331c30..e1d023e 100644
--- a/SequenceComparison/distancet.h
+++ b/SequenceComparison/distancet.h
@@ -3,6 +3,13 @@
 
 #include "calcul.h"
 
+enum distance_type {
+	euklid = 1,
+	manhattan = 2,
+	csiChroma = 3,
+	csiChord = 4
+};
+
 ///Contains pointer to currently used distance function which is internally used for 
 struct distancet {
 
@@ -23,16 +30,16 @@ struct distancet {
 	{
 		switch (type_)
 		{
-			case 1:	dist.classic = calcul::distance_dtw_euklid;	
+			case distance_type::euklid: dist.classic = calcul::distance_dtw_euklid;	
 				type = 1;	
 				break;
-			case 2: dist.classic = calcul::distance_dtw_manhattan; 
+			case distance_type::manhattan: dist.classic = calcul::distance_dtw_manhattan;
 				type = 1;	
 				break;
-			case 3: dist.csiChroma = calcul::distance_dtw_csiChroma;
+			case distance_type::csiChroma: dist.csiChroma = calcul::distance_dtw_csiChroma;
 				type = 2;	
 				break;
-			case 4:	dist.csiChord = calcul::distance_dtw_csiChord; 
+			case distance_type::csiChord: dist.csiChord = calcul::distance_dtw_csiChord;
 				type = 3;	
 				break;		
 		}
diff --git a/SequenceComparison/operation.cpp b/SequenceComparison/operation.cpp
index 7e87cbf..3e6c8af 100644
--- a/SequenceComparison/operation.cpp
+++ b/SequenceComparison/operation.cpp
@@ -30,16 +30,16 @@ result_operation operation::operation_single(input_data_single const &data, para
 	
 	switch (params.operation)
 	{
-	case 0:	//op 0
+	case operation_type::op_method:	//op 1
 		result = params.shift ? dtw_shift(data, params, f1) : dtw(data, params, f1);
 		break;
-	case 1: //op 1
+	case operation_type::op_similarity_matrix: //op 2
 		result = params.shift ? similarityMatrix_shift_omp(data, params, f1) : similarityMatrix_omp(data, params, f1);
 		break;
-	case 2: //op 2
+	case operation_type::op_similarity_evaluation: //op 3
 		result = clustering(data, params, f1);
 		break;
-	case 3: //op 3
+	case operation_type::op_local_alignment_clustering: //op 4
 		result = pdtw_localClustering(data, params, f1); //(Kocyan)
 		break;
 	default:
@@ -68,14 +68,14 @@ result_operation operation::operation_dual(input_data const &data, parameter con
 	result_operation result;
 
 	switch (params.operation)
-	{
-	case 1: //op 1
+	{	
+	case operation_type::op_similarity_matrix: //op 2
 		result = params.shift ? similarityMatrix_shift_omp(data, params, f1) : similarityMatrix_omp(data, params, f1);
 		break;
-	case 2: //op 2
+	case operation_type::op_similarity_evaluation: //op 3
 		result = clustering(data, params, f1);
 		break;
-	case 3:
+	case operation_type::op_local_alignment_clustering: //op 4
 		cout << ("error: Operation 3 is not defined for query data. Please use -single flag or remove query data.");
 		exit(0);
 		break;
diff --git a/SequenceComparison/operation.h b/SequenceComparison/operation.h
index d98e4ce..9f7ae97 100644
--- a/SequenceComparison/operation.h
+++ b/SequenceComparison/operation.h
@@ -7,6 +7,13 @@
 typedef result_dtw(*METHOD)(input_method const &input, input_info const &info, parameter const &params);
 typedef result_pdtw(*PDTW)(vtr3<double> const &input, input_info const &info, parameter const &params);
 
+enum operation_type {
+	op_method = 1,
+	op_similarity_matrix = 2,
+	op_similarity_evaluation = 3,
+	op_local_alignment_clustering = 4
+};
+
 ///Contains operation methods which wraps use of dtw, lcss and pdtw methods.
 ///@details operation 0: Calculates classic dtw or lcss method.<br>
 ///Flags required: -in, -op 0 
diff --git a/SequenceComparison/parameter.h b/SequenceComparison/parameter.h
index 22ce333..4aa4a63 100644
--- a/SequenceComparison/parameter.h
+++ b/SequenceComparison/parameter.h
@@ -92,7 +92,7 @@ public:
 		precision(3), time(false), printOutput(false), debugInfo(false),
 		shift(false), scoreReversed(false), localAlignment(false),
 		block(0), tmp_exp(false), experiment(false), simd(false), memoization(false), lowerBound(false),
-		method("dtw"), operation(0), distance (1), scoreType(0), ram(5000), clusters(1), ve_window(0), ve_smooth(0),
+		method("dtw"), operation(1), distance (1), scoreType(0), ram(5000), clusters(1), ve_window(0), ve_smooth(0),
 		w(1), fw(0), fd(1), delta(100000), epsilon(1), subsequence(0), treshold_csi(0.07), treshold_t(10), treshold_a(10), treshold_e(10), treshold_l(3),
 		/*recall(10),*/	relax(0),
 		pre_paa(1), pre_reduce(0), pre_sax(0), pre_prolong(0), pre_smooth(0), pre_interpolate(), pre_normalizeZ(), pre_normalizeBy(-1),
-- 
GitLab