Quelques GTests pour le coinche
This commit is contained in:
parent
0346f20bfe
commit
3420425f30
4 changed files with 88 additions and 8 deletions
|
@ -20,3 +20,15 @@ if(NOT SFML_FOUND)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(coinche Coinche.cpp Coinche.h playCoinche.cpp)
|
add_executable(coinche Coinche.cpp Coinche.h playCoinche.cpp)
|
||||||
|
|
||||||
|
add_executable(coincheTest Coinche.cpp Coinche.h gTestCoinche.cpp)
|
||||||
|
|
||||||
|
find_package(GTest REQUIRED)
|
||||||
|
if(GTest_FOUND)
|
||||||
|
enable_testing()
|
||||||
|
include_directories(${GTEST_INCLUDE_DIRS})
|
||||||
|
target_link_libraries(coincheTest ${GTEST_BOTH_LIBRARIES})
|
||||||
|
target_link_options(coincheTest PRIVATE -pthread)
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "GTest pas trouvé")
|
||||||
|
endif()
|
|
@ -95,12 +95,13 @@ card play(card played, std::vector<card>& jeu, Couleur atout)
|
||||||
{
|
{
|
||||||
if(carte.couleur == played.couleur)
|
if(carte.couleur == played.couleur)
|
||||||
{
|
{
|
||||||
if((!minGagnant && carte.value > played.value ) ||
|
if((!minGagnant && carte.value + carte.force > played.value + played.force) ||
|
||||||
(minGagnant && carte.value > played.value && carte.value < minGagnant->value))
|
(minGagnant && carte.value + carte.force > played.value + played.force && carte.value + carte.force < minGagnant->value + minGagnant->force))
|
||||||
{
|
{
|
||||||
minGagnant = &carte;
|
minGagnant = &carte;
|
||||||
}
|
}
|
||||||
else if(!minCouleur || ( carte.value < played.value && carte.value < minCouleur->value) )
|
else if(!minCouleur ||
|
||||||
|
( carte.value + carte.force < played.value + played.value && carte.value + carte.force < minCouleur->value + minCouleur->force) )
|
||||||
{
|
{
|
||||||
minCouleur = &carte;
|
minCouleur = &carte;
|
||||||
}
|
}
|
||||||
|
@ -109,14 +110,14 @@ card play(card played, std::vector<card>& jeu, Couleur atout)
|
||||||
{
|
{
|
||||||
if(carte.couleur == atout)
|
if(carte.couleur == atout)
|
||||||
{
|
{
|
||||||
if(!minAtout || carte.value < minAtout->value)
|
if(!minAtout || carte.value + carte.force < minAtout->value + minAtout->force)
|
||||||
{
|
{
|
||||||
minAtout = &carte;
|
minAtout = &carte;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!minPerdant || carte.value < minPerdant->value)
|
if(!minPerdant || carte.value + carte.force < minPerdant->value + minPerdant->force)
|
||||||
{
|
{
|
||||||
minPerdant = &carte;
|
minPerdant = &carte;
|
||||||
}
|
}
|
||||||
|
@ -157,7 +158,8 @@ bool WonOrLost(card played, card chosen, Couleur atout)
|
||||||
{
|
{
|
||||||
if(played.couleur == chosen.couleur)
|
if(played.couleur == chosen.couleur)
|
||||||
{
|
{
|
||||||
return(chosen.value > played.value);
|
|
||||||
|
return(chosen.value + chosen.force > played.value + played.force);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
66
snippets/gTestCoinche.cpp
Normal file
66
snippets/gTestCoinche.cpp
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
//
|
||||||
|
// Created by trotfunky on 25/04/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include <vector>
|
||||||
|
#include "Coinche.h"
|
||||||
|
|
||||||
|
TEST(testCoinche,testValeursAtout)
|
||||||
|
{
|
||||||
|
std::vector<card> deck = generate_cards();
|
||||||
|
|
||||||
|
Couleur atout = pick_atout();
|
||||||
|
|
||||||
|
std::vector<card> jeu;
|
||||||
|
|
||||||
|
update_values(atout,deck,jeu);
|
||||||
|
|
||||||
|
for(card carte : deck)
|
||||||
|
{
|
||||||
|
if(carte.force == Force::valet && carte.couleur == atout)
|
||||||
|
{
|
||||||
|
ASSERT_EQ(carte.value,20);
|
||||||
|
}
|
||||||
|
if(carte.force == Force::neuf && carte.couleur == atout)
|
||||||
|
{
|
||||||
|
ASSERT_EQ(carte.value,14);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(testCoinche,testCarte)
|
||||||
|
{
|
||||||
|
card carte1{};
|
||||||
|
carte1.couleur = Couleur::carreau;
|
||||||
|
carte1.force = Force::neuf;
|
||||||
|
carte1.value = 0;
|
||||||
|
|
||||||
|
card carte2{};
|
||||||
|
carte2.couleur = Couleur::coeur;
|
||||||
|
carte2.force = Force::dix;
|
||||||
|
carte2.value = 10;
|
||||||
|
|
||||||
|
ASSERT_FALSE(WonOrLost(carte1,carte2,Couleur::pique));
|
||||||
|
ASSERT_TRUE(WonOrLost(carte1,carte2,Couleur::coeur));
|
||||||
|
|
||||||
|
carte2.couleur = Couleur::carreau;
|
||||||
|
|
||||||
|
ASSERT_TRUE(WonOrLost(carte1,carte2,Couleur::carreau));
|
||||||
|
|
||||||
|
carte2.force = Force::huit;
|
||||||
|
carte2.value = 0;
|
||||||
|
|
||||||
|
ASSERT_FALSE(WonOrLost(carte1,carte2,Couleur::carreau));
|
||||||
|
|
||||||
|
carte2.force = Force::valet;
|
||||||
|
carte2.value = 1;
|
||||||
|
|
||||||
|
ASSERT_TRUE(WonOrLost(carte1,carte2,Couleur::carreau));
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
|
return RUN_ALL_TESTS();
|
||||||
|
}
|
|
@ -38,7 +38,7 @@ int main()
|
||||||
|
|
||||||
// On fait jouer une carte aléatoire à l'adversaire, vu que le tableau est mélangé de manière aléatoire
|
// On fait jouer une carte aléatoire à l'adversaire, vu que le tableau est mélangé de manière aléatoire
|
||||||
card played = deck.back();
|
card played = deck.back();
|
||||||
std::cout << std::endl << "L'adversaire a joué " << played << " !" << std::endl;
|
std::cout << std::endl << "L'adversaire a joué " << played << " !" << std::endl;
|
||||||
|
|
||||||
// On décide la carte que nous allons jouer
|
// On décide la carte que nous allons jouer
|
||||||
card toPlay = play(played,main,atout);
|
card toPlay = play(played,main,atout);
|
||||||
|
|
Loading…
Add table
Reference in a new issue