#!/bin/sh

set -xe

./собрать.sh
mkdir -p ./сборка/примеры/
mkdir -p ./сборка/тесты/

test_fasm() {
    ./сборка/хуяк комп -вывод ./сборка/примеры/01-привет     ./примеры/01-привет.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/02-цикл       ./примеры/02-цикл.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/03-имя        ./примеры/03-имя.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/04-физз-базз  ./примеры/04-физз-базз.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/05-фибоначчи  ./примеры/05-фибоначчи.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/06-рейлиб     ./примеры/06-рейлиб.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/07-рекурсия   ./примеры/07-рекурсия.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/08-структуры  ./примеры/08-структуры.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/09-правило110 ./примеры/09-правило110.хуя
    ./сборка/хуяк комп -вывод ./сборка/примеры/10-игра-жизнь ./примеры/10-игра-жизнь.хуя
    ./сборка/хуяк комп -вывод ./сборка/тесты/тест            ./тесты/тест.хуя

    ./сборка/примеры/01-привет               > ./сборка/примеры/01-привет.хуя.вывод.фазм     && diff -u ./примеры/01-привет.хуя.вывод     ./сборка/примеры/01-привет.хуя.вывод.фазм
    ./сборка/примеры/02-цикл                 > ./сборка/примеры/02-цикл.хуя.вывод.фазм       && diff -u ./примеры/02-цикл.хуя.вывод       ./сборка/примеры/02-цикл.хуя.вывод.фазм
    echo 'Алексей' | ./сборка/примеры/03-имя > ./сборка/примеры/03-имя.хуя.вывод.фазм        && diff -u ./примеры/03-имя.хуя.вывод        ./сборка/примеры/03-имя.хуя.вывод.фазм
    ./сборка/примеры/04-физз-базз            > ./сборка/примеры/04-физз-базз.хуя.вывод.фазм  && diff -u ./примеры/04-физз-базз.хуя.вывод  ./сборка/примеры/04-физз-базз.хуя.вывод.фазм
    ./сборка/примеры/05-фибоначчи            > ./сборка/примеры/05-фибоначчи.хуя.вывод.фазм  && diff -u ./примеры/05-фибоначчи.хуя.вывод  ./сборка/примеры/05-фибоначчи.хуя.вывод.фазм
    #./сборка/примеры/06-рейлиб              > ./сборка/примеры/06-рейлиб.хуя.вывод.фазм     && diff -u ./примеры/06-рейлиб.хуя.вывод     ./сборка/примеры/06-рейлиб.хуя.вывод.фазм
    ./сборка/примеры/07-рекурсия             > ./сборка/примеры/07-рекурсия.хуя.вывод.фазм   && diff -u ./примеры/07-рекурсия.хуя.вывод   ./сборка/примеры/07-рекурсия.хуя.вывод.фазм
    ./сборка/примеры/08-структуры            > ./сборка/примеры/08-структуры.хуя.вывод.фазм  && diff -u ./примеры/08-структуры.хуя.вывод  ./сборка/примеры/08-структуры.хуя.вывод.фазм
    ./сборка/примеры/09-правило110           > ./сборка/примеры/09-правило110.хуя.вывод.фазм && diff -u ./примеры/09-правило110.хуя.вывод ./сборка/примеры/09-правило110.хуя.вывод.фазм
    ./сборка/примеры/10-игра-жизнь           > ./сборка/примеры/10-игра-жизнь.хуя.вывод.фазм && diff -u ./примеры/10-игра-жизнь.хуя.вывод ./сборка/примеры/10-игра-жизнь.хуя.вывод.фазм
    ./сборка/тесты/тест                      > ./сборка/тесты/тест.хуя.вывод.фазм            && diff -u ./тесты/тест.хуя.вывод            ./сборка/тесты/тест.хуя.вывод.фазм
}

test_inter() {
    ./сборка/хуяк интер ./примеры/01-привет.хуя               > ./сборка/примеры/01-привет.хуя.вывод.интер     && diff -u ./примеры/01-привет.хуя.вывод     ./сборка/примеры/01-привет.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/02-цикл.хуя                 > ./сборка/примеры/02-цикл.хуя.вывод.интер       && diff -u ./примеры/02-цикл.хуя.вывод       ./сборка/примеры/02-цикл.хуя.вывод.интер
    echo 'Алексей' | ./сборка/хуяк интер ./примеры/03-имя.хуя > ./сборка/примеры/03-имя.хуя.вывод.интер        && diff -u ./примеры/03-имя.хуя.вывод        ./сборка/примеры/03-имя.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/04-физз-базз.хуя            > ./сборка/примеры/04-физз-базз.хуя.вывод.интер  && diff -u ./примеры/04-физз-базз.хуя.вывод  ./сборка/примеры/04-физз-базз.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/05-фибоначчи.хуя            > ./сборка/примеры/05-фибоначчи.хуя.вывод.интер  && diff -u ./примеры/05-фибоначчи.хуя.вывод  ./сборка/примеры/05-фибоначчи.хуя.вывод.интер
    #./сборка/хуяк интер ./примеры/06-рейлиб.хуя              > ./сборка/примеры/06-рейлиб.хуя.вывод.интер     && diff -u ./примеры/06-рейлиб.хуя.вывод     ./сборка/примеры/06-рейлиб.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/07-рекурсия.хуя             > ./сборка/примеры/07-рекурсия.хуя.вывод.интер   && diff -u ./примеры/07-рекурсия.хуя.вывод   ./сборка/примеры/07-рекурсия.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/08-структуры.хуя            > ./сборка/примеры/08-структуры.хуя.вывод.интер  && diff -u ./примеры/08-структуры.хуя.вывод  ./сборка/примеры/08-структуры.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/09-правило110.хуя           > ./сборка/примеры/09-правило110.хуя.вывод.интер && diff -u ./примеры/09-правило110.хуя.вывод ./сборка/примеры/09-правило110.хуя.вывод.интер
    ./сборка/хуяк интер ./примеры/10-игра-жизнь.хуя           > ./сборка/примеры/10-игра-жизнь.хуя.вывод.интер && diff -u ./примеры/10-игра-жизнь.хуя.вывод ./сборка/примеры/10-игра-жизнь.хуя.вывод.интер
    ./сборка/хуяк интер ./тесты/тест.хуя                      > ./сборка/тесты/тест.хуя.вывод.интер            && diff -u ./тесты/тест.хуя.вывод            ./сборка/тесты/тест.хуя.вывод.интер
}

test_fasm
test_inter
