Newer
Older
Algolike / src / test / java / MainTest.java
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);
    }
}