public void OperatorPlus_Union() { Cellule[] cells = new Cellule[] { GénérerCellule(valeurFixe: 4, possibilités: new List <int> { 1, 2 }), GénérerCellule(valeurTrouvé: 3, possibilités: new List <int> { 2, 4, 6 }), GénérerCellule(possibilités: new List <int> { 1, 2, 4, 7 }), GénérerCellule(possibilités: new List <int> { 6, 7, 8, 9 }), GénérerCellule(possibilités: new List <int> { 1, 2, 8, 9 }) }; Groupe g1 = GénérerGroupe(cells[0], cells[2], cells[3], cells[4]); Groupe g2 = GénérerGroupe(cells[1], cells[2], cells[3]); Assert.AreEqual(4, g1.Count); Assert.AreEqual(3, g2.Count); Groupe g = g1 + g2; Assert.AreEqual(5, g.Count); foreach (Cellule c in cells) { Assert.IsTrue(g.Contains(c)); } }
public void GetCellulesContenantAuMoins_GroupeNonNulleEtNulle() { Cellule [] cells = null; Groupe g = GénérerGroupe( cells = new Cellule[] { GénérerCellule(valeurFixe: 3, possibilités: new List <int> { 1, 7, 8, 3 }), GénérerCellule(valeurTrouvé: 2, possibilités: new List <int> { 1, 7, 8, 3 }), GénérerCellule(possibilités: new List <int> { 1, 2, 8, 6, 7 }), GénérerCellule(possibilités: new List <int> { 1, 2, 3 }), GénérerCellule(possibilités: new List <int> { 4, 5, 6 }), GénérerCellule(possibilités: new List <int> { 1, 2, 7, 8 }) } ); Groupe res = g.GetCellulesContenantAuMoins(new int[] { 1, 2 }); // Vérification Assert.AreEqual(3, res.Count); foreach (int i in new int [] { 2, 3, 5 }) { Assert.IsTrue(res.Contains(cells[i])); } foreach (int i in new int[] { 0, 1, 4 }) { Assert.IsFalse(res.Contains(cells[i])); } res = g.GetCellulesContenantAuMoins(new int[] { 1, 2, 4 }); // Vérification Assert.AreEqual(0, res.Count); }
public void GetCellulesContenantAuPlus_MelangesCellulesFixéTrouvéEtAutre() { Cellule[] cells = { GénérerCellule(possibilités: new List <int> { 2, 3, 4, 5 }), GénérerCellule(valeurFixe: 4, possibilités: new List <int>{ 1, 2 }), GénérerCellule(valeurTrouvé: 3, possibilités: new List <int>{ 1, 2 }), GénérerCellule(possibilités: new List <int> { 1, 2, 3 }), GénérerCellule(possibilités: new List <int> { 1, 2 }), GénérerCellule(possibilités: new List <int> { 1, 3 }), GénérerCellule(possibilités: new List <int> { 1, 3, 4 }) }; Groupe g = GénérerGroupe(cells); Groupe g2 = g.GetCellulesContenantAuPlus(new int[] { 1, 2, 3 }); Assert.AreEqual(3, g2.Count); foreach (int i in new int [] { 0, 1, 2, 6 }) { Assert.IsFalse(g2.Contains(cells[i]), "Ne devrait pas contenir " + cells[i]); } foreach (int i in new int[] { 3, 4, 5 }) { Assert.IsTrue(g2.Contains(cells[i]), "Devrait contenir " + cells[i]); } }
public void OperatorMultiply_Intersection() { Cellule[] cells = new Cellule[] { GénérerCellule(valeurFixe: 4, possibilités: new List <int> { 1, 2 }), GénérerCellule(valeurTrouvé: 3, possibilités: new List <int> { 2, 4, 6 }), GénérerCellule(possibilités: new List <int> { 1, 2, 4, 7 }), GénérerCellule(possibilités: new List <int> { 6, 7, 8, 9 }), GénérerCellule(possibilités: new List <int> { 1, 2, 8, 9 }) }; Groupe g1 = GénérerGroupe(cells[0], cells[2], cells[3], cells[4]); Groupe g2 = GénérerGroupe(cells[1], cells[2], cells[3]); Assert.AreEqual(4, g1.Count); Assert.AreEqual(3, g2.Count); Groupe g = g1 * g2; Assert.AreEqual(2, g.Count); // Appartenance foreach (Cellule c in new Cellule[] { cells[2], cells[3] }) { Assert.IsTrue(g.Contains(c)); } // Non appartenance foreach (Cellule c in new Cellule[] { cells[0], cells[1], cells[4] }) { Assert.IsFalse(g.Contains(c)); } }
public void SupprimerPossibilités3_GroupeNonModifié() { Cellule c1 = null, c2 = null; Groupe g = GénérerGroupe( GénérerCellule(valeurFixe: 3, possibilités: new List <int> { 1, 7, 8, 3 }), GénérerCellule(valeurTrouvé: 2, possibilités: new List <int> { 1, 7, 8, 3 }), c2 = GénérerCellule(possibilités: new List <int> { 1, 2, 8, 6, 7 }), GénérerCellule(possibilités: new List <int> { 1, 2, 3 }), GénérerCellule(possibilités: new List <int> { 4, 5, 6 }), c1 = GénérerCellule(possibilités: new List <int> { 1, 2, 7, 8 }) ); Groupe except = new Groupe { c1, c2 }; Assert.IsFalse(g.SupprimerPossibilité(new int[] { 7, 8, 9 }, except)); foreach (Cellule _c in g) { if (_c.Fixé || _c.Trouvé || except.Contains(_c)) { Assert.IsTrue(_c.Possibilités.Contains(7)); Assert.IsTrue(_c.Possibilités.Contains(8)); } else { Assert.IsFalse(_c.Possibilités.Contains(7)); Assert.IsFalse(_c.Possibilités.Contains(8)); } } }