{{QBDLDATE:07-31-2022}} {{QBDLTIME:23:36:10}} The '''$ASSERTS''' [[metacommand]] enables debug tests with the [[_ASSERT]] macro. {{PageSyntax}} : '''$ASSERTS''' : '''$ASSERTS:CONSOLE''' {{PageDescription}} * This metacommand does not require a comment ''[[Apostrophe|']]'' or [[REM]] before it. There is no space between the metacommand name, the colon and the CONSOLE parameter. * If this metacommand is used in a program and any of the set [[_ASSERT]] checkpoints will fail, then the program will stop with an '''{{Text|_ASSERT failed|red}}''' error. * Detailed error messages passed to the [[_ASSERT]] statement will be displayed in the console window, but only if '''$ASSERTS:CONSOLE''' is used. ;Note: This metacommand is the main switch to enable debug tests during development. Later just remove this metacommand to compile the program without debugging code, all the [[_ASSERT]] statements may remain in the code for later debugging sessions, they are simply ignored without this metacommand. {{PageAvailability}} * '''QB64 v1.4 and up''' (QB64 Team) * '''QB64-PE v0.5 and up''' (QB64 Phoenix Edition) {{PageExamples}} ;Example:Adding test checks for parameter inputs in a function. {{CodeStart}} {{Cl|$ASSERTS|$ASSERTS:CONSOLE}} {{Cl|DO}} a = {{Cl|INT}}({{Cl|RND}} * 10) b$ = myFunc$(a) {{Cl|PRINT}} a, , b$ {{Cl|_LIMIT}} 3 {{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|_KEYHIT}} {{Cl|FUNCTION}} myFunc$ (value {{Cl|AS}} {{Cl|SINGLE}}) {{Cl|_ASSERT}} value > 0, "Value cannot be zero" {{Cl|_ASSERT}} value <= 10, "Value cannot exceed 10" {{Cl|IF}} value > 1 {{Cl|THEN}} plural$ = "s" myFunc$ = {{Cl|STRING$}}(value, "*") + {{Cl|STR$}}(value) + " star" + plural$ + " :-)" {{Cl|END}} {{Cl|FUNCTION}} {{CodeEnd}} {{PageSeeAlso}} * [[Metacommand]] * [[_ASSERT]] * [[$CHECKING]] * [[Relational Operations]] * [[ERROR Codes]] {{PageNavigation}} [[Category:Final]]