Packet
Configuration for the packet of questions that is used for prompts and testing of problems.
[packet]title = "Example Packet"preamble = '''This is an optional preamble that has markdown support. This preamblewill be shown on the first page of the packet.'''
[[packet.problems]]title = "Reversing a string"description = '''Accept a single string as input. You must reverse the order of thisstring and print it back out.'''
[[packet.problems.tests]]input = "hello"output = "olleh"visible = truetrim_output = true
[[packet.problems.tests]]input = "world"output = "dlrow"visible = truetrim_output = true
[[packet.problems.tests]]input = ""output = ""trim_output = true
[[packet.problems.tests]]input = "aa"output = "aa"trim_output = true
[[packet.problems.tests]]input = "racecar"output = "racecar"trim_output = trueProblems
Section titled “Problems”The problems array contains all of the problems that will be presented
to the user in packet.
title- the title of this problem, this will also be used as a preview in the UI.description- Detailed description of this problem, supports Markdownsupported_languages- Optional list of languages that are allowed for this problem. All languages must appear in the Languages configuration.
Each problem contains a suite of tests that will be used to validate the code that the competitor has submitted.
input- Input that will be provided to the competitor’s program through standard inputoutput- Expected output that the competitor’s code should produce out to standard outputtrim_output- Whether the output should be have starting and trailing whitespace removed before comparing. i.e.," hello "would match"hello"visible- Whether this test should be visible to the user. The first visible test listed will be shown as an example in the problem description.
Imports
Section titled “Imports”Many items in the packet spec may be imported from neighbouring files.
packet:
packet = { import = "./packet.toml" }packet.preamble:
[packet]preamble = { import = "./preamble.md" }packet.problems:
[[packet.problems]]import = "./problem1.toml"
[[packet.problems]]import = "./problem2.toml"
# OR
[packet]problems = [{ import = "./problem1.toml" }, { import = "./problem2.toml" }]