import org.junit.jupiter.api.Test;
import resources.Algo;
import static controls.ConstantMethods.printAlgoState;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class MainTest {
@Test
void test(){
Algo algo = new Algo();
algo.setDeck(0, 1, 2, 3, 4, 5, 6, 7);
algo.distributeHands();
printAlgoState(algo);
//Aはカードを1枚引き、Bの0番目のカードに対して「1」を宣言する。
algo.drawAndAttackA(0, 3);
//アタックは失敗する。
assertEquals(false, algo.getResultByDrawingA().getKey());
assertEquals(false, algo.getLoseA());
assertEquals(false, algo.getLoseB());
//Bはカードを1枚引き、Aの2番目のカードに対して「2」を宣言する。
algo.drawAndAttackB(2, 2);
//アタックは失敗する。
assertEquals(false, algo.getResultByDrawingB().getKey());
assertEquals(false, algo.getLoseA());
assertEquals(false, algo.getLoseB());
//Aはカードを1枚引き、Bの1番目のカードに対して「3」を宣言する。
algo.drawAndAttackA(1, 3);
//アタックは成功する。
assertEquals(true, algo.getResultByDrawingA().getKey());
assertEquals(false, algo.getLoseA());
assertEquals(false, algo.getLoseB());
//Bはカードを1枚引き、Aの0番目のカードに対して「2」を宣言する。
algo.drawAndAttackB(0, 2);
//アタックは失敗する。
assertEquals(false, algo.getResultByDrawingB().getKey());
assertEquals(false, algo.getLoseA());
assertEquals(false, algo.getLoseB());
//Aは手札の0番目のカードアタックに使用し、Bの0番目のカードに対して「1」を宣言する。
algo.selectAndAttackA(0, 0, 1);
//アタックは成功する。
assertEquals(true, algo.getResultBySelectingA().getKey());
//Bの手札が全て表になったので、Bは敗北する。
assertEquals(false, algo.getLoseA());
assertEquals(true, algo.getLoseB());
printAlgoState(algo);
}
}