Custom level creation/test.si: Difference between revisions

From Turing Complete
m (Remove breadcrumbs in favor of built-ins)
(Add TestResult)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Early-access-version|0|1346}}
{{Early-access-version|2|0.16|alpha}}


A list of functions that can be used in <code>test.si</code>.
Each level folder contains a <code>test.si</code> file which has all the code for verifying level solutions. Written in [[Custom level creation/Simplex|Simplex]].
 
A list of functions that can be used in <code>test.si</code>.  


== Functions ==
== Functions ==
Line 18: Line 20:
* <code>arch_get_input($scratch_space: [Int], test: Int) Int</code>
* <code>arch_get_input($scratch_space: [Int], test: Int) Int</code>
* <code>on_reset($scratch_space: [Int], test: Int)</code>
* <code>on_reset($scratch_space: [Int], test: Int)</code>
** Optional
* <code>on_tick($scratch_space: [Int], tick: Int, inputs: [Int], outputs: [Int]) TestResult</code>
** Optional
** Optional


Line 56: Line 60:
* <code>ui_set_size(id: String, size: Int)</code>
* <code>ui_set_size(id: String, size: Int)</code>
* <code>ui_set_text(id: String, text: String</code>
* <code>ui_set_text(id: String, text: String</code>
== Types ==
=== TestResult ===
Returned by
* <code>check_output()</code>
* <code>arch_check_output(</code>
* <code>on_tick()</code>
Possible values:
* <code>pass</code> (the default): This test/tick is OK, proceed to the next test/tick.
* <code>fail</code>: The circuit has failed validation.
* <code>win</code>: The final test has passed, and the level is complete. This marks the win condition.

Latest revision as of 10:14, 23 July 2025

wip
wip

This page descibes the early access verion 2.0.16 alpha. It may not be completely correct for the the current stable version, nor the latest unstable version. Help us update it, and you get a cookie.

Each level folder contains a test.si file which has all the code for verifying level solutions. Written in Simplex.

A list of functions that can be used in test.si.

Functions[edit | edit source]

Component & Sequential[edit | edit source]

User defined functions for Component & Sequential type levels.

  • check_output($scratch_space: [Int], tick: Int, inputs: [Int], outputs: [Int]) TestResult
  • get_input($scratch_space: [Int], tick: Int, $inputs: [Int])
  • on_reset($scratch_space: [Int], test: Int)
    • Optional

Architecture[edit | edit source]

User defined functions for Architecture type levels.

  • arch_check_output($scratch_space: [Int], test: Int, input: Int, output: Int) TestResult
  • arch_get_input($scratch_space: [Int], test: Int) Int
  • on_reset($scratch_space: [Int], test: Int)
    • Optional
  • on_tick($scratch_space: [Int], tick: Int, inputs: [Int], outputs: [Int]) TestResult
    • Optional

Callable[edit | edit source]

The test framework defines these function which may be used in test.si for any type of level.

  • add_keyboard_value(value: Int)
  • front_panel_push(value: U8)
  • get_assembler_register_count() Int
  • get_assembler_width() Int
  • get_component_count() Int
  • get_console_offset() Int
  • get_counter_value() Int
  • get_delay_score() Int
  • get_gate_score() Int
  • get_last_time() Int
  • get_latency_ram_is_busy() Bool
  • get_level_memory(custom_string: String) Int
  • get_probe_value() Int
  • get_probe_width() Int
  • get_program_address() Int
  • get_ram_size() Int
  • get_ram_value(address: Int) Int
  • get_register_value(index: Int) Int
  • get_tick() Int
  • has_console_component() Bool
  • has_counter_component() Bool
  • has_front_panel() Bool
  • has_keyboard_component() Bool
  • has_ram() Bool
  • has_time_component() Bool
  • set_custom_input_text(input: String)
  • set_error(input: String)
  • ui_set_color(id: String, size: Int)
  • ui_set_hidden(id: String, value: Bool)
  • ui_set_image_name(id: String, text: String
  • ui_set_position(id: String, x: Int, y: Int)
  • ui_set_size(id: String, size: Int)
  • ui_set_text(id: String, text: String

Types[edit | edit source]

TestResult[edit | edit source]

Returned by

  • check_output()
  • arch_check_output(
  • on_tick()

Possible values:

  • pass (the default): This test/tick is OK, proceed to the next test/tick.
  • fail: The circuit has failed validation.
  • win: The final test has passed, and the level is complete. This marks the win condition.