Інструкція щодо налаштування
системи тестування STS
Встановлення
Система працює під керуванням операційної системи Windows і не потребує встанов­лення. Достатньо запустити на виконання файл STS.exe з довільної теки. Якщо це зроблено вперше, вікно діалогу матиме порожні поля.

Робоча тека
Робоча тека має містити копії робочих тек учасників з файлами кодів програм. Крім кодів програм кожна така тека має містити файл contest.txt (6 або 7 рядків) з інформацією про учасника:

Наприклад:

Знов'як Юрій Володимирович
Печерський
171
11
512A 0
5536895 kievoi@yandex.ru
Києво-Печерський ліцей № 171 "Лідер"

Вибір робочої теки можна здійснити у вікні діалогу, натиснувши кнопку Вибрати... праворуч від відповідного поля (у правому верхньому куті вікна діалогу). Так само здійснюють вибір шляхів до компіляторів та інтерпретарорів, параметрів компіляції.

Директорія з тестами
Тека з тестами повинна містити тести до всіх задач у довільному форматі, а також файл чи кілька файлів з описом тестів. Детальніше про формат таких файлів та назв тестів див. нижче.

Розширення та компілятори
Для того, щоб долучити, вилучити або змінити розширення для дозволениої мови програмування, потрібно натиснути відповідну кнопку праворуч від поля зі списком розширень: , або і виконати відповідні дії у вікні діалогу. Для вибраного розширення (клацнути лівою кнопкою миші на назві розширення) потрібно визначити один або кілька компіляторів чи інтерпретаторів, використовуючи такі самі кнопки праворуч від поля зі списком компіляторів. Використовуйте такі змінні:

%file — шлях до файлу з програмою;
%exe — файл, у який потрібно скомпілювати програму;
%task — поточна задача.

Якщо одному розширенню файлів відповідає більше одного компілятора (інтер­прета­тора), для розрізнення їх потрібно використати коментарі-ідентифікатори, які учасники повинні проставляти у першому рядку своїх програм. У разі, якщо програма містить неправильний ідентифікатор, для запуску буде використано перший компілятор (інтерпретатор) зі списку, але у CSV-файлі результатів міститиметься відповідне попередження.

Приклади налаштувань

Розширення pas — компілятор «FP» (Free Pascal):
• шлях до компілятора: C:\FPC\3.0.0\bin\i386-win32\fpc.exe
• параметри компіляції: -O -O2 %file

Розширення cpp, компілятор «GCC» (С++):
• шлях до компілятора: C:\Program Files\CodeBlocks\MinGW\bin\g++.exe
• параметри компіляції: -O2 -static -lm %file -o %exe

Розширення java, компілятор «Java»:
• шлях до компілятора: C:\Program Files\Java\jdk1.8.0_51\bin\javac.exe
• параметри компіляції: %file
• шлях до інтерпретатора: C:\Program Files\Java\jre1.8.0_51\bin\java.exe
• параметри інтерпретації: %task

Розширення py, компілятор «Python 3»:
• шлях до інтерпретатора: C:\Program Files\Python\python.exe
• параметри інтерпретації: %file
• коментар-ідентифікатор: """ Python 3 """

Розширення py, компілятор «Python 2» :
• шлях до інтерпретатора: C:\Python27\python.exe
• параметри інтерпретації: %file
• коментар-ідентифікатор: """ Python 2 """

Назви задач та ознака кінця рядка
Назви задач потрібно записувати латиницею. Потрібно також вказати коефіцієнт, на який множитимуть результати програм при відсутності ознаки кінця рядка у кінці вихідного файлу. Якщо відповідний прапорець відсутній, таке виведення буде розцінено як помилкове.

Файл з описом тестів
Файл з описом тестів до задачі має такий формат:

Приклад, що задає обмеження в 1 секунду та 256 мегабайтів та вартість перших 10 тестів по 4 бали, а решти 10 — по 6 балів:

1000 262144
1-10 4
11-20 6

Такий файл може бути спільним для всіх задач або для різних задач різним (наприклад, якщо різною є кількість тестів у різних задачах). У такому випадку, щоб указати шлях до файлу з описом тестів, потрібно скористатися змінною %task, що задає назву задачі.

Вхідні та вихідні файли
У лівій частині інтерфейсу потрібно вказати, де розташовано вхідні та еталони вихідних файлів у каталозі з тестами. У правій частині — назви вхідного й вихідного файлів з погляду програми учасника.

Приклад заповнення відповідних полів

ліворучправоруч
Вхідні %task\%num:3.in %task.in
Вихідні%task\%num:3.ans%task.out

При такому заповненні в директорії з тестами тести до кожної задачі зберігають в окремому каталозі, назва якого — це назва задачі, з назвами файлів 001.in/001.ans, 002.in/002.ans і т. д. Число 3 після двокрапки визначає, що у назві відповідного файлу номер тесту потрібно доповнити нулями зліва до трицифрового. Назви вхідного та вихідного файлів для програми виглядають у поданому прикладі як назва задачі з розширеннями in та out відповідно.

Файл налаштувань
Під час роботи програми тестування буде створено файл налаштувань settings.ini, який містить введені параметри тестування. Нижче подано вміст такого файлу, який буде надано учасникам олімпіади.

[Paths]
WorkFolder=D:\Olimp\WORK\STS\examples\sols\
TestFolder=D:\Olimp\WORK\STS\examples\sum\
TestName=testdata.txt
InTestName=%num:2.in
InName=%task.in
OutTestName=%num:2.ans
OutName=%task.out
[Settings]
LineBreakPts=0,5
LineBreak=1
[Tasks]
Tasklist=sum\n
[Compilers]
pas=fpc ||| D:\Olimp\FreePascal\bin\i386-win32\fpc.exe ||| -O -O2 %file ||| [[empty]] ||| [[empty]] ||| { Free Pascal }
cpp=g++ ||| C:\Program Files\CodeBlocks\MinGW\bin\g++.exe ||| -O2 -static -lm %file -o %exe ||| [[empty]] ||| [[empty]] ||| /* GCC */
java=java ||| C:\Program Files\Java\jdk1.8.0_51\bin\javac.exe ||| %file ||| C:\Program Files\Java\jre1.8.0_51\bin\java.exe ||| %task ||| [[empty]]
py=python 3 ||| [[empty]] ||| [[empty]] ||| C:\Program Files\Python\python.exe ||| %file ||| """ Python 3 """

При спробі працювати з конфігураційним файлом, неузгодженим з розташуванням тек, буде виведено інформаційне вікно з пропозицією змінити налаштування: виправити або видалити шлях.

Тестування
Щоб почати тестування, потрібно натиснути кнопку Почати тестування праворуч унизу вікна програми STS. Результати тестування буде записано у файлах result.csv, result_full.html, result_full.txt робочої теки (з копіями робочих тек учасників). У разі повторного тестування результати попереднього тестування буде знищено.

Тлумачення діагностик
Якщо замість кількості балів за тест у файлах result_full.html, result_full.txt вказано скорочення латиницею, то вони мають таке тлумачення:

Як завантажити систему тестування?
Під час проведення ІІІ (міського) етапу олімпіади з інформатики систему тестування можна буде скопіювати з теки D:\Olimp\Doc\STS у теку D:\Olimp\Work\STS. Посилання на архів є на сторінці «Проведення і результати» сайту «Київські учнівські олімпіади з інформатики». Після розпакування потрібно додати розширення exe до файлу STS. Разом з програмою надано файл налаштувань для тестування розв'язань задачі sum: зчитати 2 цілих числа і записати їхню суму. Також подано тести до цієї задачі та розв'язання мовами Pascal, C++, Java і Python. Перед перевіркою взаємодії свого розв'язання з системою тестування учасник повинен перевірити коректність роботи системи тестування для задачі sum і у разі потреби переналаштувати її. У разі використання STS на ІІ (районному) етапі олімпіади бажано ще до проведення олімпіади змінити налаштування під актуальне розташування тек з програмним забезпеченням.

Використання спеціальних алгоритмів перевірки
Інколи (наприклад, при багатоваріантній відповіді і довільного порядку виведення варіантів) потрібно використати спеціальні алгоритми перевірки. У цьому випадку використання програми порівняння еталонного й вихідного файлів можливе за таких умов:

Питання
З усіх питань щодо роботи системи можна звертатися до автора Данила Мисака за такою адресою електронної пошти: danmysak@gmail.com.