From d63040824bc530dc86c8e6e55710f251903dc30e Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Mon, 13 May 2024 10:31:01 +0200 Subject: [PATCH] Correction des tests, avec merge master --- Sources/CoreLibrary/Code.cs | 46 ++++++++++--------- .../CodeTailleInvalideException.cs | 14 ------ Sources/UnitTesting/CodeUT.cs | 26 ++++------- Sources/UnitTesting/PlateauUT.cs | 7 +-- Sources/UnitTesting/ReglesClassiquesUT.cs | 7 +-- 5 files changed, 40 insertions(+), 60 deletions(-) delete mode 100644 Sources/CoreLibrary/CodeTailleInvalideException.cs diff --git a/Sources/CoreLibrary/Code.cs b/Sources/CoreLibrary/Code.cs index 053303a..0c6dc64 100644 --- a/Sources/CoreLibrary/Code.cs +++ b/Sources/CoreLibrary/Code.cs @@ -36,7 +36,7 @@ namespace CoreLibrary /// Levée lorsque la collection de jetons spécifiée est vide. public Code(IEnumerable jetons) { - if (jetons.Any()) + if (!jetons.Any()) { throw new TailleCodeException(jetons.Count()); } @@ -85,7 +85,7 @@ namespace CoreLibrary /// Levée lorsque l'indice est supérieur à la taille maximale du code, inférieur à 0 ou qu'il n'y a pas de jeton à l'indice spécifié public Jeton RecupererJeton(int indice) { - if(indice < 0 || indice > TailleMaximale()) + if(indice < 0 || indice >= TailleMaximale()) throw new IndiceCodeException(indice, NbJetons-1); Jeton? jeton = lesJetons[indice]; @@ -136,18 +136,13 @@ namespace CoreLibrary Indicateur[] indicateurs = []; - /// Vérifie si les deux codes sont complets - if (!EstComplet() || !autreCode.EstComplet()) - return indicateurs; + if (!autreCode.EstComplet()) + return indicateurs; + + Jeton?[] mesJetons = Jetons().ToArray(); + Jeton?[] sesJetons = autreCode.Jetons().ToArray(); - List mesJetons = new List(Jetons()); - List sesJetons = new List(autreCode.Jetons()); - - - /// Compare les jetons pour détecter les ceux à la bonnes places - /// S'ils sont à la bonne place alors ils sont enlever du tableau et un indicateur BONNEPLACE est ajouter au tableau des indicateurs. - - for (int i = 0; i < mesJetons.Count; ++i) + for (int i = 0; i < mesJetons.Length; ++i) { Jeton? monJeton = mesJetons[i]; Jeton? sonJeton = sesJetons[i]; @@ -160,19 +155,26 @@ namespace CoreLibrary } } - /// Compare les jetons pour détecter ceux qui ont la bonne couleur. - /// S'ils ont la bonne couleur alors ils sont enlever du tableau et un indicateur BONNECOULEUR est ajouter au tableau des indicateurs. - for (int i = 0; i < sesJetons.Count; ++i) + for (int i = 0; i < sesJetons.Length; ++i) { Jeton? sonJeton = sesJetons[i]; - - if (sonJeton.HasValue && mesJetons.Contains(sonJeton.Value)) + + if (sonJeton.HasValue) { - indicateurs = indicateurs.Append(Indicateur.BONNECOULEUR).ToArray(); - mesJetons[mesJetons.IndexOf(sonJeton.Value)] = null; - sesJetons[i] = null; - break; + for (int j = 0; j < mesJetons.Length; ++j) + { + Jeton? monJeton = mesJetons[j]; + + if (monJeton.HasValue && sonJeton.Value.Couleur.Equals(monJeton.Value.Couleur)) + { + indicateurs = indicateurs.Append(Indicateur.BONNECOULEUR).ToArray(); + mesJetons[j] = null; + sesJetons[i] = null; + break; + } + + } } } diff --git a/Sources/CoreLibrary/CodeTailleInvalideException.cs b/Sources/CoreLibrary/CodeTailleInvalideException.cs deleted file mode 100644 index 4fcadeb..0000000 --- a/Sources/CoreLibrary/CodeTailleInvalideException.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CoreLibrary -{ - public class CodeTailleInvalideException : Exception - { - public CodeTailleInvalideException() : base("La taille du tableau de code est inférieure ou égale à 0") - { } - } -} diff --git a/Sources/UnitTesting/CodeUT.cs b/Sources/UnitTesting/CodeUT.cs index c8078ca..fe39ebb 100644 --- a/Sources/UnitTesting/CodeUT.cs +++ b/Sources/UnitTesting/CodeUT.cs @@ -1,5 +1,5 @@ using CoreLibrary; -using System.Linq; +using CoreLibrary.Exceptions; using Xunit; namespace UnitTesting @@ -18,8 +18,8 @@ namespace UnitTesting [Fact] public void TestConstructorInvalidArguments() { - Assert.Throws(() => new Code(0)); - Assert.Throws(() => new Code(-1)); + Assert.Throws(() => new Code(0)); + Assert.Throws(() => new Code(-1)); } [Fact] @@ -36,7 +36,7 @@ namespace UnitTesting [Fact] public void TestSecondConstructorInvalidArguments() { - Assert.Throws(() => new Code([])); + Assert.Throws(() => new Code([])); } [Fact] @@ -53,7 +53,7 @@ namespace UnitTesting public void TestAjouterJetonInvalid() { Code code = new Code([new Jeton(Couleur.NOIR)]); - Assert.Throws(() => code.AjouterJeton(new Jeton(Couleur.ROUGE))); + Assert.Throws(() => code.AjouterJeton(new Jeton(Couleur.ROUGE))); } [Fact] @@ -68,7 +68,7 @@ namespace UnitTesting public void TestSupprimerDernierJetonInvalid() { Code code = new Code(4); - Assert.Throws(() => code.SupprimerDernierJeton()); + Assert.Throws(() => code.SupprimerDernierJeton()); } [Fact] @@ -84,9 +84,8 @@ namespace UnitTesting public void TestRecupererJetonInvalid() { Code code = new Code(4); - Assert.Throws(() => code.RecupererJeton(-1)); - Assert.Throws(() => code.RecupererJeton(5)); - Assert.Throws(() => code.RecupererJeton(2)); + Assert.Throws(() => code.RecupererJeton(-1)); + Assert.Throws(() => code.RecupererJeton(4)); } [Fact] @@ -193,15 +192,6 @@ namespace UnitTesting Assert.Empty(indicateurs); } - - [Fact] - public void TestComparerInvalid() - { - Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]); - Code autreCode = new Code(3); - - Assert.Throws(() => code.Comparer(autreCode)); - } } } diff --git a/Sources/UnitTesting/PlateauUT.cs b/Sources/UnitTesting/PlateauUT.cs index 358a7f1..1b99bb7 100644 --- a/Sources/UnitTesting/PlateauUT.cs +++ b/Sources/UnitTesting/PlateauUT.cs @@ -1,4 +1,5 @@ using CoreLibrary; +using CoreLibrary.Exceptions; using System.Linq; using Xunit; @@ -18,7 +19,7 @@ namespace UnitTesting [Fact] public void TestConstructorInvalid() { - Assert.Throws(() => new Plateau(0, 10)); + Assert.Throws(() => new Plateau(0, 10)); } [Fact] @@ -65,7 +66,7 @@ namespace UnitTesting Plateau plateau = new Plateau(4, 10); Code code = new Code([new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]); - Assert.Throws(() => plateau.AjouterCode(code)); + Assert.Throws(() => plateau.AjouterCode(code)); } [Fact] @@ -74,7 +75,7 @@ namespace UnitTesting Plateau plateau = new Plateau(4, 10); Code code = new Code(4); - Assert.Throws(() => plateau.AjouterCode(code)); + Assert.Throws(() => plateau.AjouterCode(code)); } [Fact] diff --git a/Sources/UnitTesting/ReglesClassiquesUT.cs b/Sources/UnitTesting/ReglesClassiquesUT.cs index 3566577..6e05912 100644 --- a/Sources/UnitTesting/ReglesClassiquesUT.cs +++ b/Sources/UnitTesting/ReglesClassiquesUT.cs @@ -1,4 +1,5 @@ using CoreLibrary; +using CoreLibrary.Exceptions; using Xunit; namespace UnitTesting @@ -11,7 +12,7 @@ namespace UnitTesting ReglesClassiques regles = new ReglesClassiques(); Assert.NotNull(regles); - //Assert.Equal(2, regles.NbJoueurs); + Assert.Equal(0, regles.NbJoueurs); Assert.Equal(2, regles.NbJoueursMaximum); } @@ -43,7 +44,7 @@ namespace UnitTesting public void TestJoueurCourantNoPlayer() { ReglesClassiques regles = new ReglesClassiques(); - Assert.Throws(() => regles.JoueurCourant()); + Assert.Throws(() => regles.JoueurCourant()); } [Fact] @@ -66,7 +67,7 @@ namespace UnitTesting public void TestPasserLaMainInvalid() { ReglesClassiques regles = new ReglesClassiques(); - Assert.Throws(() => regles.PasserLaMain()); + Assert.Throws(() => regles.PasserLaMain()); } [Fact]