package starter;

import io.zzax.jadeite.console.Console;
import io.zzax.jadeite.test.Checker;

public class Main {
    public static void main(String[] args) {
        new Main().test();
    }

    public void print0() {
        int size = 5;
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                Console.print("* ");
            }
            Console.println();
        }
    }

    public void print1() {
        // TODO
    }

    public void print2() {
        // TODO
    }

    public void print3() {
        // TODO
    }

    public void print4() {
        // TODO
    }

    public void print5() {
        // TODO
    }

    public void print6() {
        // TODO
    }

    public void print7() {
        // TODO
    }

    public void print8() {
        // TODO
    }

    public void test() {
        Checker.task("print0", task -> {
            task.startCollectOutput();
            print0();
            task.expectPrintln("* * * * *");
            task.expectPrintln("* * * * *");
            task.expectPrintln("* * * * *");
            task.expectPrintln("* * * * *");
            task.expectPrintln("* * * * *");
            task.softCheckOutput();
        });

        Checker.task("print1", task -> {
            task.startCollectOutput();
            print1();
            task.expectPrintln("* * * * *");
            task.expectPrintln("* * * *");
            task.expectPrintln("* * *");
            task.expectPrintln("* *");
            task.expectPrintln("*");
            task.softCheckOutput();
        });

        Checker.task("print2", task -> {
            task.startCollectOutput();
            print2();
            task.expectPrintln("        *");
            task.expectPrintln("      * *");
            task.expectPrintln("    * * *");
            task.expectPrintln("  * * * *");
            task.expectPrintln("* * * * *");
            task.softCheckOutput();
        });

        Checker.task("print3", task -> {
            task.startCollectOutput();
            print3();
            task.expectPrintln("    *");
            task.expectPrintln("  * * *");
            task.expectPrintln("* * * * *");
            task.softCheckOutput();
        });

        Checker.task("print4", task -> {
            task.startCollectOutput();
            print4();
            task.expectPrintln("* * * * *");
            task.expectPrintln("  * * *");
            task.expectPrintln("    *");
            task.softCheckOutput();
        });

        Checker.task("print5", task -> {
            task.startCollectOutput();
            print5();
            task.expectPrintln("* * * * *");
            task.expectPrintln("  * * *");
            task.expectPrintln("    *");
            task.expectPrintln("  * * *");
            task.expectPrintln("* * * * *");
            task.softCheckOutput();
        });

        Checker.task("print6", task -> {
            task.startCollectOutput();
            print6();
            task.expectPrintln("* * * * *");
            task.expectPrintln("*       *");
            task.expectPrintln("*       *");
            task.expectPrintln("*       *");
            task.expectPrintln("* * * * *");
            task.softCheckOutput();
        });

        Checker.task("print7", task -> {
            task.startCollectOutput();
            print7();
            task.expectPrintln("* * * * *");
            task.expectPrintln("  *   *");
            task.expectPrintln("    *");
            task.expectPrintln("  *   *");
            task.expectPrintln("* * * * *");
            task.softCheckOutput();
        });

        Checker.task("print8", task -> {
            task.startCollectOutput();
            print8();
            task.expectPrintln("    * * *");
            task.expectPrintln("    * *");
            task.expectPrintln("    *");
            task.expectPrintln("  * *");
            task.expectPrintln("* * *");
            task.softCheckOutput();
        });
    }
}
