6. testlib.h

Polygon 2015. 7. 29. 10:30

testlib.h는 5. Files에서도 잠깐 설명했지만, Codeforces와 Polygon의 설립자 Mike Mirzayanov가 만든, 문제를 검증하는 프로그램을 짤 때 사용하는 C++ 헤더 파일입니다. testlib.h는 test를 만들거나(Generator), test가 유효한지 판별하거나(Validator), 출제자의 답과 문제를 부는 사람의 답이 일치하는지 판별하는 등(Checker)에 사용됩니다. 실제로 testlib.h를 이용되는 경우가 많다고 이 링크에 적혀 있습니다.


testlib.h의 장점은 기본적으로 안정적으로 정수가 사용되는 문제이든, 문자열 문제이든, 실수 문제이든 Generator, Validator, Checker 등을 만들 수 있으며, 실시간으로 verdict를 알 수 있다는 데 있으며, 엔드 유저인 일반 사용자들이 더 쉽게 이러한 것들을 체크할 수 있다는 것에 의미가 있습니다.


testlib.h를 다운로드하시려면 이 GitHub 저장소에서 옆에 보이는 Download Zip을 누르시면 됩니다. 이 경우 몇 개의 코드 샘플과 같이 다운로드되게 됩니다. testlib.h는 Polygon 시스템에서만 사용할 수 있는 게 아닌, 일반적인 헤더 파일입니다. 


testlib.h를 사용하면서 필요한 함수들은 각 경우에 따라서 설명하는 형식으로 진행하겠습니다. 단 한 가지 팁을 드리자면, testlib.h는 자체적인 랜덤 함수를 쓰기 때문에 srand()나 rand() 함수의 사용이 금지되어 있으며, 이가 포함된 코드를 업로드할 수 없습니다. 그리고 또 한가지 주의점이 있습니다. testlib.h는 일부 함수들을 오버로딩하기 때문에, 항상 가장 먼저 include해야 합니다.


이후 만들어야 하는 것들이 코드만 따지면 Generator, Validator, Solution, Checker 등이 있는데 실제로 작동하려면 이 4개가 기본적으로 다 있어야 합니다. 일단은 Generator부터 강의하도록 하겠습니다. tests쪽이 testlib.h 외에도 알아야 하는게 하나 더 있어서 말입니다.


'Polygon' 카테고리의 다른 글

8. Tests (2 - Generator with Freemarker)  (0) 2015.08.09
7. Tests (1 - Generator with testlib.h)  (0) 2015.08.02
5. Files  (0) 2015.07.28
4. Statement  (0) 2015.07.28
3. General Info  (0) 2015.07.22
Posted by Evenharder
,