From 16a88095f412c8769373b5ec055180446f8ed38c Mon Sep 17 00:00:00 2001 From: flothoni Date: Fri, 15 Jun 2018 12:32:24 +0200 Subject: [PATCH 1/3] compare.js: minor refactoring Put braces for better lisibility --- browser/js/compare.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/browser/js/compare.js b/browser/js/compare.js index 53e86a349..fb571a796 100644 --- a/browser/js/compare.js +++ b/browser/js/compare.js @@ -69,14 +69,17 @@ function compare(string1, string2) { charS1 = string1_lower.charAt(i); charS2 = string2_lower.charAt(i); } - if (value_compare_ascii !== 0) + if (value_compare_ascii !== 0){ return value_compare_ascii; + } //Si l'on arrive ici, c'est qu'il n'y avait rien à comparer sur les chaînes de caractères précédemment données //Vérification si l'un ou/et l'autre est/sont nul(s) var value_compare_length = compare_length(string1_lower, string2_lower, i); - if (value_compare_length === undefined) + if (value_compare_length === undefined) { return compare_numbers(string1_lower.substring(i,string1.length), string2_lower.substring(i, string2.length)); - else return value_compare_length; + } else { + return value_compare_length; + } } /* Fonction permettant la comparaison entre 2 caractères ascii -- GitLab From a1c04369907722b2a6082fd737f5b99b5882330a Mon Sep 17 00:00:00 2001 From: flothoni Date: Fri, 15 Jun 2018 15:09:14 +0200 Subject: [PATCH 2/3] compare.js: update function compare() Use easiest comparaisons bettween two values. fix #3288 --- browser/js/compare.js | 44 +++--------------- browser/test/QUnit/testFiles/compare_test.js | 49 ++++++++++++++++++++ browser/test/QUnit/test_Qunit.html | 1 + 3 files changed, 56 insertions(+), 38 deletions(-) create mode 100644 browser/test/QUnit/testFiles/compare_test.js diff --git a/browser/js/compare.js b/browser/js/compare.js index fb571a796..32d5fa877 100644 --- a/browser/js/compare.js +++ b/browser/js/compare.js @@ -42,44 +42,12 @@ var term = "*"; * Renvoie 1 si la deuxième chaîne doit être classée avant la première */ function compare(string1, string2) { - //Variable permettant l'incrémentation dans le TantQue - var i = 0; - //Vérification de la présence de l'étoile (pour la comparaison d'allèles) - var boolTerm = false; - //On réduit tout en minuscule, afin de faciliter la comparaison caractère par caractère... - var string1_lower = string1.toLowerCase(); - var string2_lower = string2.toLowerCase(); - //On sauvegarde le premier caractère de la phrase en minuscule - var charS1 = string1_lower.charAt(0); - var charS2 = string2_lower.charAt(0); - if (charS1 == term) { - charS1 = string1_lower.charAt(1); - boolTerm = true; - } - if (charS2 == term) { - charS2 = string2_lower.charAt(1); - boolTerm = true; - } - if (boolTerm === true) i = 1; - //On va trier les noms qui, pour l'instant, ne contiennent aucun nombre - var value_compare_ascii = 0; - while (value_compare_ascii === 0 && isNaN(charS1) && isNaN(charS2) && i string2 + var comparaison_2 = string1 < string2 + + if( !comparaison_1 && !comparaison_2){ return 0} + if( comparaison_1 && !comparaison_2){ return 1} + if( !comparaison_1 && comparaison_2){ return -1} } /* Fonction permettant la comparaison entre 2 caractères ascii diff --git a/browser/test/QUnit/testFiles/compare_test.js b/browser/test/QUnit/testFiles/compare_test.js new file mode 100644 index 000000000..577d98b5d --- /dev/null +++ b/browser/test/QUnit/testFiles/compare_test.js @@ -0,0 +1,49 @@ + + +QUnit.module("Compare", { +}); + + +QUnit.test("compare", function(assert) { + + // avec des valeurs identiques + // numbers + getted = compare("42", "42") + assert.equal(getted, 0, "identical number return 0") + // only string + getted = compare("intron-a", "intron-a") + assert.equal(getted, 0, "identical string return 0") + // string with number + getted = compare("intron-42", "intron-42") + assert.equal(getted, 0, "identical string+number retrun 0") + + // * Renvoie 0 si les deux chaînes sont strictement équivalentes + // * Renvoie -1 si la première chaîne doit être classée avant la deuxième + // * Renvoie 1 si la deuxième chaîne doit être classée avant la première + getted = compare("intron-1", "intron-1-var") + assert.equal(getted, -1, "string+number have correct return") + getted = compare("intron-1-var", "intron-1") + assert.equal(getted, 1, "reverse of the previous") + + getted = compare("intron-vax", "intron-var") + assert.equal(getted, 1, "string return correct order") + getted = compare("intron-1-var", "intron-1-vax") + assert.equal(getted, -1, "reverse of the previous") + + + + getted = compare("42", "512") + assert.equal(getted, -1, "number return correct order") + getted = compare("512", "42") + assert.equal(getted, 1, "reverse of the previous") + getted = compare("042", "512") + assert.equal(getted, -1, "number with 0 at first place return correct order") + getted = compare("512", "042") + assert.equal(getted, 1, "reverse of the previous") + + getted = compare("intron-42*42", "intron-512*42") + assert.equal(getted, -1, "straing, number + allele return correct order") + getted = compare("intron-512*42", "intron-42*42") + assert.equal(getted, 1, "reverse of the previous") + +}); diff --git a/browser/test/QUnit/test_Qunit.html b/browser/test/QUnit/test_Qunit.html index e9881fa8d..b71b912d9 100644 --- a/browser/test/QUnit/test_Qunit.html +++ b/browser/test/QUnit/test_Qunit.html @@ -114,5 +114,6 @@ + -- GitLab From 1bfb066773efb017da57761dea56d347ed3a23a2 Mon Sep 17 00:00:00 2001 From: Mikael Salson Date: Fri, 15 Jun 2018 16:26:48 +0200 Subject: [PATCH 3/3] compare.js: simplifying See #3288 --- browser/js/compare.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/browser/js/compare.js b/browser/js/compare.js index 32d5fa877..d5c86dba2 100644 --- a/browser/js/compare.js +++ b/browser/js/compare.js @@ -45,9 +45,9 @@ function compare(string1, string2) { var comparaison_1 = string1 > string2 var comparaison_2 = string1 < string2 - if( !comparaison_1 && !comparaison_2){ return 0} - if( comparaison_1 && !comparaison_2){ return 1} - if( !comparaison_1 && comparaison_2){ return -1} + if( comparaison_1){ return 1} + if( comparaison_2){ return -1} + return 0; } /* Fonction permettant la comparaison entre 2 caractères ascii -- GitLab