écriture des Tests unitaire et rectification d'un bug de la fonction isHyperset
continuous-integration/drone/push Build is passing Details

pull/47/head
Raphael LACOTE 2 years ago
parent caad23ffbe
commit 580ebb3d14

@ -11,7 +11,6 @@
<h1>Console - test </h1>
<section>
</section>
<script src="../Model/Exceptions.js"></script>
<script src="../Model/Card.js"></script>
@ -25,7 +24,9 @@
<script src="../Model/Const.js"></script>
<script src="../Model/Factory.js"></script>
<script src="../Model/Deck.js"></script>
<script src="main.js"></script>
<script src="../Console/test.js"></script>
<!--<script src="main.js"></script>-->
</body>
</html>

@ -2,7 +2,7 @@
//import('../Model/Card5');
//import {Card} from '../Model/Card';
/*console.log("~#Test#~");
console.log("~#Test#~");
let card4 = new Card4WithoutOutline('red','2','losange','full');
console.group('Carte 4 attributes');
console.log(`carte de 4 elements : ${card4.color}`);
@ -110,7 +110,7 @@ for (let i=0; i<26;i++){
console.log(e.getAttributes());
});
}
deck.checkSet(customCard);*/
deck.checkSet(customCard);
// CREATE HYPERSET

@ -0,0 +1,61 @@
let card1 = new Card4WithoutOutline('red', 3, 'wave', 'full');
let card2 = new Card4WithoutOutline('red', 3, 'oval', 'empty');
let card3 = new Card4WithoutOutline('blue', 2, 'oval', 'full');
let card4 = new Card4WithoutOutline('green', 1, 'wave', 'pointed');
let card5 = new Card4WithoutOutline('green', 1, 'wave', 'full');
deckA = [];
deckB = [];
deckC = [];
deckA.push(card1, card2);
deckB.push(card3, card4);
deckC.push(card3, card5);
console.assert(isHyperset(deckA, deckB) == true);
console.assert(isHyperset(deckA, deckC) == false);
let BcardG1 = new Card5('red', 4, 'oval', 'empty', 'fullO');
let BcardG2 = new Card5('red', 3, 'oval', 'full', 'fullO');
let BcardG3 = new Card5('red', 2, 'oval', 'squared', 'fullO');
let BcardG4 = new Card5('red', 1, 'oval', 'pointed', 'fullO');
let BcardD1 = new Card5('green', 3, 'oval', 'pointed', 'cloudy');
let BcardD2 = new Card5('blue', 2, 'oval', 'squared', 'sharpy');
let BcardD3 = new Card5('purple', 4, 'oval', 'full', 'hyphen');
let BcardD4 = new Card5('orange', 1, 'oval', 'empty', 'dotted');
let BcardD5 = new Card5('purple', 4, 'oval', 'stripped', 'hyphen');
BdeckA = [];
BdeckB = [];
BdeckC = [];
BdeckD = [];
BdeckE = [];
BdeckA.push(BcardG1, BcardG2, BcardG3);
BdeckB.push(BcardD1, BcardD2, BcardD3);
BdeckC.push(BcardD1, BcardD2, BcardD5);
BdeckD.push(BcardG1, BcardG2, BcardG3,BcardG4);
BdeckE.push(BcardD1, BcardD2, BcardD3,BcardD4);
console.assert(isHyperset(BdeckA, BdeckB) == true);
console.assert(isHyperset(BdeckA, BdeckC) == false);
console.assert(isHyperset(BdeckD, BdeckE) == true);
let Ccard1 = new Card4WithoutShape('blue', 3, 'empty', 'cloudy');
let Ccard2 = new Card4WithoutShape('red', 3, 'empty', 'cloudy');
let Ccard3 = new Card4WithoutShape('green', 3, 'empty', 'cloudy');
let Ccard4 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
let Ccard5 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
let Ccard6 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
CdeckA = [];
CdeckB = [];
CdeckA.push(Ccard1, Ccard2, Ccard3);
CdeckB.push(Ccard4, Ccard5, Ccard6);
console.assert(isHyperset(CdeckA, CdeckB) == false);

@ -2,7 +2,7 @@ const tabColor = ['red','purple','green','blue','orange'];
const tabNumber = [1,2,3,4,5];
const tabShape = ['diamond','oval','wave','star','triangle'];
const tabFilling = ['empty','stripped','full','pointed','squared'];
const tabOutline = ['fullO','dotted ','hyphen','cloudy','sharpy'];
const tabOutline = ['fullO','dotted','hyphen','cloudy','sharpy'];
const ATTRIBUTES = [tabColor, tabNumber, tabShape, tabFilling, tabOutline]
//Rename tabOutline
//Rename tabOutline first attributs

@ -203,7 +203,9 @@ function createCard(cards) {
//S'ils sont tous égaux
if (listeInter.every(element => element === listeInter[0])) {
carteFinale.push(listeInter[0]);
l = []
l.push(listeInter[0])
carteFinale.push(l);
}
else {
//S'ils sont tous différents
@ -226,10 +228,11 @@ function isHyperset(cardsLeft, cardsRight) {
right = createCard(cardsRight)
let verif;
for (let i = 0; i < left[0].length; i++) {
for (let i = 0; i < left.length; i++) {
verif = false;
left.forEach(elementG => {
right.forEach(elementD => {
left[i].forEach(elementG => {
right[i].forEach(elementD => {
if (elementD == elementG) {
verif=true
}

@ -0,0 +1,61 @@
let card1 = new Card4WithoutOutline('red', 3, 'wave', 'full');
let card2 = new Card4WithoutOutline('red', 3, 'oval', 'empty');
let card3 = new Card4WithoutOutline('blue', 2, 'oval', 'full');
let card4 = new Card4WithoutOutline('green', 1, 'wave', 'pointed');
let card5 = new Card4WithoutOutline('green', 1, 'wave', 'full');
deckA = [];
deckB = [];
deckC = [];
deckA.push(card1, card2);
deckB.push(card3, card4);
deckC.push(card3, card5);
console.assert(isHyperset(deckA, deckB) == true);
console.assert(isHyperset(deckA, deckC) == false);
let BcardG1 = new Card5('red', 4, 'oval', 'empty', 'fullO');
let BcardG2 = new Card5('red', 3, 'oval', 'full', 'fullO');
let BcardG3 = new Card5('red', 2, 'oval', 'squared', 'fullO');
let BcardG4 = new Card5('red', 1, 'oval', 'pointed', 'fullO');
let BcardD1 = new Card5('green', 3, 'oval', 'pointed', 'cloudy');
let BcardD2 = new Card5('blue', 2, 'oval', 'squared', 'sharpy');
let BcardD3 = new Card5('purple', 4, 'oval', 'full', 'hyphen');
let BcardD4 = new Card5('orange', 1, 'oval', 'empty', 'dotted');
let BcardD5 = new Card5('purple', 4, 'oval', 'stripped', 'hyphen');
BdeckA = [];
BdeckB = [];
BdeckC = [];
BdeckD = [];
BdeckE = [];
BdeckA.push(BcardG1, BcardG2, BcardG3);
BdeckB.push(BcardD1, BcardD2, BcardD3);
BdeckC.push(BcardD1, BcardD2, BcardD5);
BdeckD.push(BcardG1, BcardG2, BcardG3, BcardG4);
BdeckE.push(BcardD1, BcardD2, BcardD3, BcardD4);
console.assert(isHyperset(BdeckA, BdeckB) == true);
console.assert(isHyperset(BdeckA, BdeckC) == false);
console.assert(isHyperset(BdeckD, BdeckE) == true);
let Ccard1 = new Card4WithoutShape('blue', 3, 'empty', 'cloudy');
let Ccard2 = new Card4WithoutShape('red', 3, 'empty', 'cloudy');
let Ccard3 = new Card4WithoutShape('green', 3, 'empty', 'cloudy');
let Ccard4 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
let Ccard5 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
let Ccard6 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
CdeckA = [];
CdeckB = [];
CdeckA.push(Ccard1, Ccard2, Ccard3);
CdeckB.push(Ccard4, Ccard5, Ccard6);
console.assert(isHyperset(CdeckA, CdeckB) == false);
Loading…
Cancel
Save