diff t/golm_ws_LibrarySearch_test.t @ 0:e3d43b8c987b draft

Init repository with last tool-bank-golm-lib_search master version
author fgiacomoni
date Mon, 05 Dec 2016 08:32:04 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/t/golm_ws_LibrarySearch_test.t	Mon Dec 05 08:32:04 2016 -0500
@@ -0,0 +1,656 @@
+#! perl
+use diagnostics;
+use warnings;
+no warnings qw/void/;
+use strict;
+no strict "refs" ;
+use Test::More qw( no_plan );
+use FindBin ;
+use Carp ;
+
+## Specific Modules
+use lib $FindBin::Bin ;
+my $binPath = $FindBin::Bin ;
+
+
+use lib::golm_ws_api_test qw( :ALL ) ;
+
+## To launch the right sequence : API, MSP...
+my $sequence = 'MSP' ; 
+my $current_test = 1 ;
+
+
+#### #### ##### ###### ################################################ ###### ##### ##### ###### ######
+
+								## START of API SEQUENCE ## 
+							
+#### #### ##### ###### ################################################ ###### ##### ##### ###### ######
+
+
+if ($sequence eq "API") {
+	
+	## testing api module of golm wrapper.
+	## 		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+	print "\n\t\t\t  * * * * * * \n" ;
+	print "\t  * * * - - - Test Golm API module - - - * * * \n\n" ;
+
+	##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ws_url, $ws_proxy
+# Structure of res : @ret = [ %val1, %val2, ... %valN ]
+print "\n** Test $current_test test_query_golm with default parameters **\n" ; $current_test++;
+is_deeply( test_query_golmTest("http://gmd.mpimp-golm.mpg.de", "http://gmd.mpimp-golm.mpg.de/webservices/wsLibrarySearch.asmx"),
+1,
+"Method \'test_query_golm\' Test Golm webservice with default spectrum");
+
+print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ws_url, $ws_proxy
+## 		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+print "\n** Test $current_test connectWSlibrarySearchGolm with real uri and proxy **\n" ; $current_test++;
+isa_ok( connectWSlibrarySearchGolmTest("http://gmd.mpimp-golm.mpg.de", "http://gmd.mpimp-golm.mpg.de/webservices/wsLibrarySearch.asmx"), 'SOAP::Lite' );
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ri, $riWindow, $gcColumn, $spectrum, $maxHits, $JaccardDistanceThreshold,
+#		$s12GowerLegendreDistanceThreshold,$DotproductDistanceThreshold,$HammingDistanceThreshold,
+#		$EuclideanDistanceThreshold,$ws_url, $ws_proxy,$default_ri, $default_ri_window, $default_gc_column
+# Structure of res : @limited_hits = [ %val1, %val2, ... %valN ], @json_res = [ ojson1, ojson2,... ]
+print "\n** Test $current_test LibrarySearch with a list of mzs, intensities and real search parameters **\n" ; $current_test++;
+is_deeply(LibrarySearchTest(1898, 5, "VAR5", "70 3 71 3 72 16 73 999 74 87 75 78 76 4 77 5 81 1 82 6 83 13 84 4 85 3 86 4 87 5 88 4 89 52 90 4 91 2 97 2 98 1 99 4 100 12 101 16 102 9 103 116 104 11 105 26 106 2 107 1 111 1 112 1 113 4 114 11 115 7 116 5 117 93 118 9 119 8 126 1 127 3 128 3 129 101 130 19 131 25 132 4 133 60 134 8 135 4 140 1 141 1 142 4 143 13 144 2 145 6 146 1 147 276 148 44 149 27 150 3 151 1 156 1 157 70 158 12 159 5 160 148 161 26 162 7 163 8 164 1 168 1 169 2 170 1 172 3 173 4 174 1 175 4 177 4 186 2 187 1 189 28 190 7 191 13 192 2 193 1 201 5 202 1 203 3 204 23 205 162 206 31 207 16 208 2 210 2 214 1 215 2 216 8 217 88 218 18 219 8 220 1 221 6 222 1 229 23 230 6 231 11 232 3 233 4 234 3 235 1 243 1 244 2 245 1 246 2 247 1 256 1 262 3 263 1 269 2 270 1 274 4 275 1 277 4 278 1 291 7 292 2 293 1 300 1 305 4 306 1 307 4 308 1 318 1 319 122 320 37 321 17 322 3 323 1 343 1 364 2 365 1",
+							2, 0.9, 0.9, 0.5, 500, 0.5,"http://gmd.mpimp-golm.mpg.de", "http://gmd.mpimp-golm.mpg.de/webservices/wsLibrarySearch.asmx",1500, 3000, "VAR5"),
+		
+        [
+          {
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'EuclideanDistance' => '0.00648652157',
+            'HammingDistance' => 51,
+            'ri' => '1899.05493',
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            's12GowerLegendreDistance' => '0.404159725',
+            'riDiscrepancy' => '1.054953',
+            'DotproductDistance' => '0.00376573764',
+            'JaccardDistance' => '0.2849162'
+          },
+          {
+            'DotproductDistance' => '0.0041610254',
+            'JaccardDistance' => '0.238709673',
+            'ri' => '1897.25439',
+            'spectrumID' => 'd00de57d-6fab-49d0-9aee-25e259da9180',
+            's12GowerLegendreDistance' => '0.367506444',
+            'riDiscrepancy' => '0.745605469',
+            'analyteName' => 'Idose (1MEOX) (5TMS) BP',
+            'spectrumName' => 'Idose (1MEOX) (5TMS) BP [A191005-ambient-na-1]',
+            'EuclideanDistance' => '0.007327365',
+            'HammingDistance' => 37,
+            'analyteID' => '6f4e926f-d7ef-47b6-a52c-91ff88ca567a',
+            'metaboliteID' => 'ab025068-f464-4bc6-9c92-994c29387db2'
+          }
+        ]
+        ,
+    "Method \'LibrarySearch\' returns a list of hits for a spectrum and parameters given in argument");
+
+
+print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ri, $riWindow, $gcColumn, $spectrum, $maxHits, $JaccardDistanceThreshold,
+#		$s12GowerLegendreDistanceThreshold,$DotproductDistanceThreshold,$HammingDistanceThreshold,
+#		$EuclideanDistanceThreshold,$ws_url, $ws_proxy,$default_ri, $default_ri_window, $default_gc_column
+# Structure of res : @ret = [ %val1, %val2, ... %valN ]
+print "\n** Test $current_test BUG LibrarySearch with a list of mzs, intensities and empty spectrum **\n" ; $current_test++;
+is_deeply(LibrarySearchTest(1898, 5, "VAR5", "", 2, 0.9, 0.9, 0.5, 500, 0.5,"http://gmd.mpimp-golm.mpg.de", "http://gmd.mpimp-golm.mpg.de/webservices/wsLibrarySearch.asmx",1500, 3000, "VAR5"),
+[],
+"Method \'LibrarySearch\' returns a list of hits for a spectrum and parameters given in argument");
+
+print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
+#		$DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold
+# Structure of res : @ret = [ %val1, %val2, ... %valN ]
+
+my $results = [
+          {
+            's12GowerLegendreDistance' => '0.404159725',
+            'JaccardDistance' => '0.2849162',
+            'ri' => '1899.05493',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'EuclideanDistance' => '0.00648652157',
+            'HammingDistance' => '51',
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            'DotproductDistance' => '0.00376573671',
+            'riDiscrepancy' => '1.054953',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP'
+          },
+          {
+            'analyteName' => 'Idose (1MEOX) (5TMS) BP',
+            'spectrumName' => 'Idose (1MEOX) (5TMS) BP [A191005-ambient-na-3]',
+            'riDiscrepancy' => '0.745605469',
+            'ri' => '1897.25439',
+            'metaboliteID' => 'ab025068-f464-4bc6-9c92-994c29387db2',
+            'JaccardDistance' => '0.835855663',
+            's12GowerLegendreDistance' => '0.771266937',
+            'DotproductDistance' => '0.0228821356',
+            'HammingDistance' => '718',
+            'EuclideanDistance' => '0.007299051',
+            'analyteID' => '6f4e926f-d7ef-47b6-a52c-91ff88ca567a',
+            'spectrumID' => '274f5578-3087-4c10-8a6c-6ffa6eb4bd6c'
+          }
+  		] ;
+print "\n** Test $current_test filter_scores_golm_results with results and thresholds **\n" ; $current_test++;
+is_deeply(filter_scores_golm_resultsTest($results, 0.9, 0.9, 0.5, 500, 0.5),
+		[
+          {
+            's12GowerLegendreDistance' => '0.404159725',
+            'DotproductDistance' => '0.00376573671',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'riDiscrepancy' => '1.054953',
+            'ri' => '1899.05493',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP',
+            'HammingDistance' => 51,
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            'JaccardDistance' => '0.2849162',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'EuclideanDistance' => '0.00648652157'
+          }
+        ],
+"Method \'filter_scores_golm_results\' returns results wich have distance scores under thresholds");
+
+print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
+#		$DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold
+# Structure of res : @ret = [ %val1, %val2, ... %valN ]
+
+$results = [
+          {
+            's12GowerLegendreDistance' => '0.404159725',
+            'JaccardDistance' => '0.9849162',
+            'ri' => '1899.05493',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'EuclideanDistance' => '0.00648652157',
+            'HammingDistance' => '51',
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            'DotproductDistance' => '0.00376573671',
+            'riDiscrepancy' => '1.054953',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP'
+          },
+          {
+            'analyteName' => 'Idose (1MEOX) (5TMS) BP',
+            'spectrumName' => 'Idose (1MEOX) (5TMS) BP [A191005-ambient-na-3]',
+            'riDiscrepancy' => '0.745605469',
+            'ri' => '1897.25439',
+            'metaboliteID' => 'ab025068-f464-4bc6-9c92-994c29387db2',
+            'JaccardDistance' => '0.835855663',
+            's12GowerLegendreDistance' => '0.771266937',
+            'DotproductDistance' => '0.0228821356',
+            'HammingDistance' => '718',
+            'EuclideanDistance' => '0.007299051',
+            'analyteID' => '6f4e926f-d7ef-47b6-a52c-91ff88ca567a',
+            'spectrumID' => '274f5578-3087-4c10-8a6c-6ffa6eb4bd6c'
+          }
+  		] ;
+  		
+print "\n** Test $current_test filter_scores_golm_results with results having too high distance scores **\n" ; $current_test++;
+is_deeply(filter_scores_golm_resultsTest($results, 0.9, 0.9, 0.5, 500, 0.5),
+		[],
+"Method \'filter_scores_golm_results\' returns results wich have distance scores under thresholds");
+
+print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $results
+# Structure of res : @ret = [ %val1, %val2, ... %valN ]
+
+$results = [
+          {
+            's12GowerLegendreDistance' => '0.404159725',
+            'JaccardDistance' => '0.9849162',
+            'ri' => '1899.05493',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'EuclideanDistance' => '0.00648652157',
+            'HammingDistance' => '51',
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            'DotproductDistance' => '0.00376573671',
+            'riDiscrepancy' => '1.054953',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP'
+          },
+          {
+            's12GowerLegendreDistance' => '0.404159725',
+            'JaccardDistance' => '0.9849162',
+            'ri' => '1899.05493',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'EuclideanDistance' => '0.00648652157',
+            'HammingDistance' => '51',
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            'DotproductDistance' => '0.07376573671',
+            'riDiscrepancy' => '1.054953',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP'
+          }
+  		] ;
+  		
+print "\n** Test $current_test filter_replica_results with real parameters **\n" ; $current_test++;
+is_deeply(filter_replica_resultsTest($results),
+		[
+          {
+            's12GowerLegendreDistance' => '0.404159725',
+            'JaccardDistance' => '0.9849162',
+            'ri' => '1899.05493',
+            'metaboliteID' => '68513255-fc44-4041-bc4b-4fd2fae7541d',
+            'EuclideanDistance' => '0.00648652157',
+            'HammingDistance' => '51',
+            'analyteID' => '0a2b3536-2245-4c0e-bdbc-495766eeec67',
+            'spectrumID' => 'dd5bb721-ce4f-4cec-99ff-de2cb818304d',
+            'DotproductDistance' => '0.00376573671',
+            'riDiscrepancy' => '1.054953',
+            'spectrumName' => 'Glucose (1MEOX) (5TMS) BP [A191001-ambient-na-23]',
+            'analyteName' => 'Glucose (1MEOX) (5TMS) BP'
+          }
+        ],
+"Method \'filter_replica_results\' returns results with unique spectra with lowest dotproduct");
+
+print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
+
+
+
+
+}
+
+
+#### #### ##### ###### ################################################ ###### ##### ##### ###### ######
+
+								## START of MSP SEQUENCE ## 
+							
+#### #### ##### ###### ################################################ ###### ##### ##### ###### ######
+
+
+elsif ($sequence eq "MSP") {
+	
+	## testing msp module of golm wrapper.
+	## 		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+	print "\n\t\t\t  * * * * * * \n" ;
+	print "\t  * * * - - - Test MSP parsing module - - - * * * \n\n" ;
+
+	##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $msp_file, $mzRes
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test get_mzs from a .msp file normal parameters **\n" ; $current_test++;
+is_deeply( get_mzsTest('./data/inputSpectra_unit_test.msp',0),
+		[
+          [
+            73,
+            74,
+            75,
+            100,
+            103,
+            116,
+            117,
+            118,
+            128,
+            131,
+            133,
+            147,
+            48,
+            149,
+            190,
+            191,
+            192,
+            207,
+            218
+          ]
+        ], 
+"Method \'get_mzs\' return an array of arrays refs containing mzs of all the spectra from a msp file");
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $msp_file, $mzRes
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test get_mzs from a .msp file: specific mzRes **\n" ; $current_test++;
+is_deeply( get_mzsTest('./data/inputSpectra_unit_test.msp',2),
+		[
+          [
+            '73.05',
+            '74.05',
+            '75.03',
+            '100.06',
+            '103.02',
+            '116.09',
+            '117.09',
+            '118.09',
+            '128.05',
+            '131.04',
+            '133.04',
+            '147.07',
+            '48.07',
+            '149.06',
+            '190.11',
+            '191.11',
+            '192.10',
+            '207.03',
+            '218.10'
+          ]
+        ], 
+"Method \'get_mzs\' return an array of arrays refs containing mzs of all the spectra from a msp file ");
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $msp_file, $mzRes
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test get_mzs from a .msp file: too big mzRes **\n" ; $current_test++;
+is_deeply( get_mzsTest('./data/inputSpectra_unit_test.msp',10),
+		[
+          [
+            '73.0465000000',
+            '74.0481000000',
+            '75.0319000000',
+            '100.0573000000',
+            '103.0227000000',
+            '116.0884000000',
+            '117.0905000000',
+            '118.0869000000',
+            '128.0526000000',
+            '131.0359000000',
+            '133.0438000000',
+            '147.0666000000',
+            '48.0660000000',
+            '149.0551000000',
+            '190.1069000000',
+            '191.1063000000',
+            '192.1023000000',
+            '207.0333000000',
+            '218.1028000000'
+          ]
+        ],
+"Method \'get_mzs\' return an array of arrays refs containing mzs of all the spectra from a msp file ");
+
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $msp_file
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test get_intensities from a .msp file **\n" ; $current_test++;
+is_deeply(get_intensitiesTest('./data/inputSpectra_unit_test.msp'),
+		[
+          [
+            '826983.38',
+            '70018.08',
+            '69475.73',
+            '37477.24',
+            '43054.28',
+            '1433179.62',
+            '151975.23',
+            '53105.64',
+            '26404.77',
+            '22647.44',
+            '22141.56',
+            '255488.28',
+            '49965.66',
+            '37762.38',
+            '72568.23',
+            '18017.34',
+            '6460.8',
+            '35435.81',
+            '30528.82'
+          ]
+        ],
+"Method \'get_mzs\' return an array of arrays refs containing mzs of all the spectra from a msp file");
+
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $inputSpectra,$mzRes
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test get_masses_from_stringTest from string of mzs and intensities **\n" ; $current_test++;
+is_deeply(get_masses_from_stringTest('70 3 71 3 72 16 73 999 74 87 75 78 76 4 77 5 81 1 82 6 83 13 84 4 85 3 86 4 87 5 88 4 89 52 90 4 91 2 97 2 98 1 99 4 100
+ 12 101 16 102 9 103 116 104 11 105 26 106 2 107 1 111 1 112 1 113 4 114 11 115 7 116 5 117 93 118 9 119 8 126 1 127 3 128 3 129 101 130 19 131 25 132 4 133 60 134 8 135 4 140
+  1 141 1 142 4 143 13 144 2 145 6 146 1 147 276 148 44 149 27 150 3 151 1 156 1 157 70 158 12 159 5 160 148 161 26 162 7 163 8 164 1 168 1 169 2 170 1 172 3 173 4 174 1 175 4
+   177 4 186 2 187 1 189 28 190 7 191 13 192 2 193 1 201 5 202 1 203 3 204 23 205 162 206 31 207 16 208 2 210 2 214 1 215 2 216 8 217 88 218 18 219 8 220 1 221 6 222 1 229 23
+    230 6 231 11 232 3 233 4 234 3 235 1 243 1 244 2 245 1 246 2 247 1 256 1 262 3 263 1 269 2 270 1 274 4 275 1 277 4 278 1 291 7 292 2 293 1 300 1 305 4 306 1 307 4 308 1 318
+     1 319 122 320 37 321 17 322 3 323 1 343 1 364 2 365 1', 0),
+		[
+          '70', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '111', '112', '113', '114', '115', '116', '117', '118', '119', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '140', '141', '142', '143', '144', '145', '146', '147', '148', '149', '150', '151', '156', '157', '158', '159', '160', '161', '162', '163', '164', '168', '169', '170', '172', '173', '174', '175', '177', '186', '187', '189', '190', '191', '192', '193', '201', '202', '203', '204', '205', '206', '207', '208', '210', '214', '215', '216', '217', '218', '219', '220', '221', '222', '229', '230', '231', '232', '233', '234', '235', '243', '244', '245', '246', '247', '256', '262', '263', '269', '270', '274', '275', '277', '278', '291', '292', '293', '300', '305', '306', '307', '308', '318', '319', '320', '321', '322', '323', '343', '364', '365'
+		],
+"Method \'get_masses_from_stringTest\' return an array containing all masses from a string");
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $inputSpectra
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test get_intensities_from_stringTest from string of mzs and intensities **\n" ; $current_test++;
+is_deeply(get_intensities_from_stringTest("70 3 71 3 72 16 73 999 74 87 75 78 76 4 77 5 81 1 82 6 83 13 84 4 85 3 86 4 87 5 88 4 89 52 90 4 91 2 97 2 98 1 99 4 100
+ 12 101 16 102 9 103 116 104 11 105 26 106 2 107 1 111 1 112 1 113 4 114 11 115 7 116 5 117 93 118 9 119 8 126 1 127 3 128 3 129 101 130 19 131 25 132 4 133 60 134 8 135 4 140
+  1 141 1 142 4 143 13 144 2 145 6 146 1 147 276 148 44 149 27 150 3 151 1 156 1 157 70 158 12 159 5 160 148 161 26 162 7 163 8 164 1 168 1 169 2 170 1 172 3 173 4 174 1 175 4
+   177 4 186 2 187 1 189 28 190 7 191 13 192 2 193 1 201 5 202 1 203 3 204 23 205 162 206 31 207 16 208 2 210 2 214 1 215 2 216 8 217 88 218 18 219 8 220 1 221 6 222 1 229 23
+    230 6 231 11 232 3 233 4 234 3 235 1 243 1 244 2 245 1 246 2 247 1 256 1 262 3 263 1 269 2 270 1 274 4 275 1 277 4 278 1 291 7 292 2 293 1 300 1 305 4 306 1 307 4 308 1 318
+     1 319 122 320 37 321 17 322 3 323 1 343 1 364 2 365 1"),
+		[
+          '3', '3', '16', '999', '87', '78', '4', '5', '1', '6', '13', '4', '3', '4', '5', '4', '52', '4', '2', '2', '1', '4', '12', '16', '9', '116', '11', '26', '2', '1', '1', '1', '4', '11', '7', '5', '93', '9', '8', '1', '3', '3', '101', '19', '25', '4', '60', '8', '4', '1', '1', '4', '13', '2', '6', '1', '276', '44', '27', '3', '1', '1', '70', '12', '5', '148', '26', '7', '8', '1', '1', '2', '1', '3', '4', '1', '4', '4', '2', '1', '28', '7', '13', '2', '1', '5', '1', '3', '23', '162', '31', '16', '2', '2', '1', '2', '8', '88', '18', '8', '1', '6', '1', '23', '6', '11', '3', '4', '3', '1', '1', '2', '1', '2', '1', '1', '3', '1', '2', '1', '4', '1', '4', '1', '7', '2', '1', '1', '4', '1', '4', '1', '1', '122', '37', '17', '3', '1', '1', '2', '1'
+        ],
+"Method \'get_intensities_from_stringTest\' return an array containing all intensities from a string");
+
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $mzs,$intensities
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test encode_spectrum_for_query from mzs and intensities arrays **\n" ; $current_test++;
+
+my $mzs = [
+		[73,147,157,160,205,217,272,319,320],
+		[73,129,147,157,160,205,217,319,320]
+		] ;
+
+my $intensities = [
+				[5764652,5244020,3561241,3454586,4437872,3601276,30900.41,5352581,3587208],
+	            [5551756,3361335,5231997,3641748,3947240,4374348,3683153,5377373,3621938]
+				];
+
+is_deeply(encode_spectrum_for_queryTest($mzs,$intensities),
+[
+	'73 5764652 147 5244020 157 3561241 160 3454586 205 4437872 217 3601276 272 30900.41 319 5352581 320 3587208 ',
+	'73 5551756 129 3361335 147 5231997 157 3641748 160 3947240 205 4374348 217 3683153 319 5377373 320 3621938 ',
+],
+"Method \'encode_spectrum_for_query\' return an array containing WS formatted spectrum strings");
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $mzs,$intensities
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test encode_spectrum_for_query from empty mzs and intensities arrays **\n" ; $current_test++;
+
+$mzs = [] ;
+
+$intensities = [];
+
+is_deeply(encode_spectrum_for_queryTest($mzs,$intensities),
+[],
+"Method \'encode_spectrum_for_query\' return an array containing WS formatted spectrum strings");
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $mzs,$intensities
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test encode_spectrum_for_query from undef mzs and intensities arrays **\n" ; $current_test++;
+is_deeply(encode_spectrum_for_queryTest(undef,undef),
+[],
+"Method \'encode_spectrum_for_query\' return an array containing WS formatted spectrum strings");
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $mzs_res_sorted, $maxIons
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test keep_only_max_masses from mzs arrays according to a max ions given in argument **\n" ; $current_test++;
+is_deeply(keep_only_max_massesTest(
+		[
+          '73', '147', '205', '160', '319', '103', '129', '117', '217', '74', '75', '157', '133', '89', '148', '320', '206', '189', '149', '105', '161', '131', '204', '229', '130', '218', '321', '72', '101', '207', '83', '143', '191', '100', '158', '104', '114', '231', '102', '118', '119', '134', '163', '216', '219', '115', '162', '190', '291', '82', '145', '221', '230', '77', '87', '116', '159', '201', '76', '84', '86', '88', '90', '99', '113', '132', '135', '142', '173', '175', '177', '233', '274', '277', '305', '307', '70', '71', '85', '127', '128', '150', '172', '203', '232', '234', '262', '322', '91', '97', '106', '144', '169', '186', '192', '208', '210', '215', '244', '246', '269', '292', '364', '81', '98', '107', '111', '112', '126', '140', '141', '146', '151', '156', '164', '168', '170', '174', '187', '193', '202', '214', '220', '222', '235', '243', '245', '247', '256', '263', '270', '275', '278', '293', '300', '306', '308', '318', '323', '343', '365'
+        ], 2),
+		[
+          '73',
+          '147'
+        ],
+"Method \'keep_only_max_masses\' return an array containing the number of masses to send to Golm");
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $mzs_res_sorted, $maxIons
+# Structure of res: [ $arr_ref1 , $arr_ref2 ... $arr_refN ]
+print "\n** Test $current_test keep_only_max_intensities from intensity arrays according to a max ions given in argument **\n" ; $current_test++;
+is_deeply(keep_only_max_intensitiesTest(
+		[
+          999,276,162,148,122,116,101,93,88,87,78,70,60,52,44,37,31,28,27,26,26,25,23,23,19,18,17,16,16,16,13,13,13,12,12,11,11,11,9,9,8,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+        ], 2),
+		[
+          999,
+          276
+        ],
+"Method \'keep_only_max_intensities\' return an array containing the number of intensities to send to Golm");
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ref_mzs_res, $ref_ints_res
+# Structure of res: [ mz1,mz2,... ] , [ int1,int2,... ]
+print "\n** Test $current_test sorting_descending_intensities sort mzs and intensities arrays by descending intensity values **\n" ; $current_test++;
+is_deeply(sorting_descending_intensities1Test(
+		[
+          '70','71','72','73','74','75','76','77','81','82','83','84','85','86','87','88','89','90','91','97','98','99','100','101','102','103','104','105','106','107','111','112','113','114','115','116','117','118','119','126','127','128','129','130','131','132','133','134','135','140','141','142','143','144','145','146','147','148','149','150','151','156','157','158','159','160','161','162','163','164','168','169','170','172','173','174','175','177','186','187','189','190','191','192','193','201','202','203','204','205','206','207','208','210','214','215','216','217','218','219','220','221','222','229','230','231','232','233','234','235','243','244','245','246','247','256','262','263','269','270','274','275','277','278','291','292','293','300','305','306','307','308','318','319','320','321','322','323','343','364','365'
+        ], 
+        [
+          '3','3','16','999','87','78','4','5','1','6','13','4','3','4','5','4','52','4','2','2','1','4','12','16','9','116','11','26','2','1','1','1','4','11','7','5','93','9','8','1','3','3','101','19','25','4','60','8','4','1','1','4','13','2','6','1','276','44','27','3','1','1','70','12','5','148','26','7','8','1','1','2','1','3','4','1','4','4','2','1','28','7','13','2','1','5','1','3','23','162','31','16','2','2','1','2','8','88','18','8','1','6','1','23','6','11','3','4','3','1','1','2','1','2','1','1','3','1','2','1','4','1','4','1','7','2','1','1','4','1','4','1','1','122','37','17','3','1','1','2','1'
+        ]),
+		[
+          '73','147','205','160','319','103','129','117','217','74','75','157','133','89','148','320','206','189','149','105','161','131','204','229','130','218','321','72','101','207','83','143','191','100','158','104','114','231','102','118','119','134','163','216','219','115','162','190','291','82','145','221','230','77','87','116','159','201','76','84','86','88','90','99','113','132','135','142','173','175','177','233','274','277','305','307','70','71','85','127','128','150','172','203','232','234','262','322','91','97','106','144','169','186','192','208','210','215','244','246','269','292','364','81','98','107','111','112','126','140','141','146','151','156','164','168','170','174','187','193','202','214','220','222','235','243','245','247','256','263','270','275','278','293','300','306','308','318','323','343','365'
+        ],
+"Method \'sorting_descending_intensities\' return the arrays of mz sorted accordingly to the rearrangment of the ints array");
+
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ref_mzs_res, $ref_ints_res
+# Structure of res: [ mz1,mz2,... ] , [ int1,int2,... ]
+print "\n** Test $current_test sorting_descending_intensities sort mzs and intensities arrays by descending intensity values **\n" ; $current_test++;
+is_deeply(sorting_descending_intensities2Test(
+		[
+          '70','71','72','73','74','75','76','77','81','82','83','84','85','86','87','88','89','90','91','97','98','99','100','101','102','103','104','105','106','107','111','112','113','114','115','116','117','118','119','126','127','128','129','130','131','132','133','134','135','140','141','142','143','144','145','146','147','148','149','150','151','156','157','158','159','160','161','162','163','164','168','169','170','172','173','174','175','177','186','187','189','190','191','192','193','201','202','203','204','205','206','207','208','210','214','215','216','217','218','219','220','221','222','229','230','231','232','233','234','235','243','244','245','246','247','256','262','263','269','270','274','275','277','278','291','292','293','300','305','306','307','308','318','319','320','321','322','323','343','364','365'
+        ], 
+        [
+          '3','3','16','999','87','78','4','5','1','6','13','4','3','4','5','4','52','4','2','2','1','4','12','16','9','116','11','26','2','1','1','1','4','11','7','5','93','9','8','1','3','3','101','19','25','4','60','8','4','1','1','4','13','2','6','1','276','44','27','3','1','1','70','12','5','148','26','7','8','1','1','2','1','3','4','1','4','4','2','1','28','7','13','2','1','5','1','3','23','162','31','16','2','2','1','2','8','88','18','8','1','6','1','23','6','11','3','4','3','1','1','2','1','2','1','1','3','1','2','1','4','1','4','1','7','2','1','1','4','1','4','1','1','122','37','17','3','1','1','2','1'
+        ]),
+		[
+          999,276,162,148,122,116,101,93,88,87,78,70,60,52,44,37,31,28,27,26,26,25,23,23,19,18,17,16,16,16,13,13,13,12,12,11,11,11,9,9,8,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+        ],
+"Method \'sorting_descending_intensities\' return the arrays of ints sorted by descending intensity values");
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ref_mzs_res, $ref_ints_res
+# Structure of res: [ mz1,mz2,... ] , [ int1,int2,... ]
+print "\n** Test $current_test sorting_descending_intensities remove redundant masses **\n" ; $current_test++;
+is_deeply(remove_redundants1Test(
+		[
+          '70','71','71','73'
+		], 
+        [
+          '147','259','276','45'
+        ]),
+		[
+          '70','71','73'
+        ],
+"Method \'sorting_descending_intensities\' return the arrays of masses of non redundant ions");
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $ref_mzs_res, $ref_ints_res
+# Structure of res: [ mz1,mz2,... ] , [ int1,int2,... ]
+print "\n** Test $current_test sorting_descending_intensities remove redundant masses **\n" ; $current_test++;
+is_deeply(remove_redundants2Test(
+		[
+          '70','71','71','73'
+		], 
+        [
+          '147','259','276','45'
+        ]),
+		[
+          '147','276','45'
+        ],
+"Method \'sorting_descending_intensities\' return the arrays of ints of non redundant ions");
+
+
+
+##		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# ARGS : $uniq_total_intensities
+# Structure of res: [ [int1,int2,...] , ... ]
+print "\n** Test $current_test apply_relative_intensity make intensities to relative **\n" ; $current_test++;
+is_deeply(apply_relative_intensityTest(
+		[
+          [
+            '1433179.62','826983.38','255488.28','151975.23','72568.23','70018.08','69475.73','53105.64','49965.66','43054.28','37762.38','37477.24','35435.81','30528.82','26404.77','22647.44','22141.56','18017.34','6460.8'
+          ]
+        ], 
+        ),
+		[
+          [
+            '100','57.7027030289476','17.8266754867753','10.6040602224025','5.063442780466','4.88550625636164','4.84766382597598','3.7054420296599','3.48635016174735','3.00410914299772','2.63486721922546','2.61497159720985','2.47253097277507','2.13014611525107','1.84239083723504','1.58022341958784','1.54492568070428','1.25715854095106','0.450801833199386'
+          ]
+        ],
+"Method \'apply_relative_intensity\' return the arrays of relativ intensities");
+
+
+
+}
+else {
+	croak "Can\'t launch any test : no sequence clearly defined !!!!\n" ;
+}
+