Merge soa into main: Add desugar based SOA #345
GitHub Actions / ulox.core Tests
succeeded
Jun 21, 2024 in 0s
718 passed, 0 failed and 0 skipped
✅ ulox/ulox.core.tests/TestResults/TestResults.trx
718 tests were completed in 3s with 718 passed, 0 failed and 0 skipped.
✅ NoFailUloxTests
✅ AssertLibrary.ulox
✅ Classes.ulox
✅ ClassVars.ulox
✅ ConfirmVmExceptions.ulox
✅ Constants.ulox
✅ ContextNames.ulox
✅ ContractMeets.ulox
✅ ControlFlow.ulox
✅ DebugLibrary.ulox
✅ Dynamic.ulox
✅ Enum.ulox
✅ Expects.ulox
✅ Freeze.ulox
✅ FunctionalCollections.ulox
✅ FunctionalCollectionsNative.ulox
✅ Functions.ulox
✅ Logic.ulox
✅ LoopArray.ulox
✅ Map.ulox
✅ Math.ulox
✅ MixinsLeafInitsOfMixedVars.ulox
✅ MixinsMethods.ulox
✅ MixinsSimple.ulox
✅ NativeClasses.ulox
✅ SerialiseLibrary.ulox
✅ StaticClasses.ulox
✅ StdLibrary.ulox
✅ StringConversion.ulox
✅ VMLibrary.ulox
✅ VmLibraryInherTests.ulox
✅ WithoutAssertLibrary.ulox
✅ TryItOutTests
✅ 01-Hello.ulox
✅ 02-Func.ulox
✅ 03-Fib.ulox
✅ 04-Loop.ulox
✅ 05-Counter.ulox
✅ 06-Class Basics.ulox
✅ 06-Class Features.ulox
✅ 07-Tests Basics.ulox
✅ 07-Tests Features.ulox
✅ 08-StdLibrary.ulox
✅ 10-List.ulox
✅ 11-Dynamic.ulox
✅ 12-Map.ulox
✅ 14-ContextNames.ulox
✅ 15-Freeze.ulox
✅ 16-MultipleReturns.ulox
✅ 17-typeof.ulox
✅ 18-InnerVms.ulox
✅ 19-Functional.ulox
✅ 20-Contracts.ulox
✅ 23-Enum.ulox
✅ 24-Update.ulox
✅ 25-build.ulox
✅ ULox.Core.Tests.BuildQueueTests
✅ ctor_WhenDefault_ShouldNotThrow
✅ Enqueue_WhenDefault_ShouldNotThrow
✅ HasItems_Whenctor_ShouldReturnFalse
✅ HasItems_WhenEnqueued_ShouldReturnTrue
✅ ULox.Core.Tests.ByteCodeEngineTests
✅ ByteCodePacket_Size_4
✅ Engine_Approx_Assert
✅ Engine_Assert
✅ Engine_Assert_Throws
✅ Engine_Call_External_NoParams
✅ Engine_Closure_Counter
✅ Engine_Closure_Counter_NoPrint
✅ Engine_Closure_ExampleDissasembly
✅ Engine_Closure_Inner_Outer
✅ Engine_Closure_StillOnStack
✅ Engine_Closure_Tripup
✅ Engine_Compile_Call_Mixed_Ops
✅ Engine_Compile_Func_Call
✅ Engine_Compile_Func_Do_Nothing
✅ Engine_Compile_Func_Inner_Logic
✅ Engine_Compile_MajorRecursive
✅ Engine_Compile_MinorRecursive
✅ Engine_Compile_Recursive
✅ Engine_Compile_Return
✅ Engine_Compile_Var_Mixed_Ops
✅ Engine_Compile_Var_Mixed_Ops_InFunc
✅ Engine_ContextAssertLibrary_IsFound
✅ Engine_Cycle_Blocks_Constants
✅ Engine_Cycle_Blocks_Globals
✅ Engine_Cycle_Blocks_Locals
✅ Engine_Cycle_Blocks_Locals_Sets
✅ Engine_Cycle_Blocks_PopCheck
✅ Engine_Cycle_Global_Var
✅ Engine_Cycle_Global_Var_DoubleRun
✅ Engine_Cycle_Logic_Compare_Expression
✅ Engine_Cycle_Logic_Not_Expression
✅ Engine_Cycle_Math_Expression
✅ Engine_Cycle_Minus_Equals_Expression
✅ Engine_Cycle_Print_Math_Expression
✅ Engine_Cycle_String_Add_Expression
✅ Engine_Cycle_UselessDeclare
✅ Engine_Cycle_UselessExpression
✅ Engine_Cycle_While_Nested_Locals
✅ Engine_Cycle_While_Nested_LocalsAndGlobals
✅ Engine_Duplicate_Number_Matches
✅ Engine_Duplicate_String_Matches
✅ Engine_Func_Paramless
✅ Engine_Local_MultiVar
✅ Engine_Multiple_Scripts1
✅ Engine_NestedCalls
✅ Engine_NestedFunc_ExampleDissasembly
✅ Engine_Read_External_Global
✅ Engine_SelfAssign
✅ Engine_SingleProgram_MultiVMs
✅ Engine_StringConcat
✅ Engine_Throw
✅ Engine_Throw_Exp
✅ Function_WhenCalledWithDifferentTypesButCompatibleLogic_ShouldSucceed
✅ GenerateByteCodeForLocalAssignment
✅ Manual_Chunk_VM
✅ NoLocal_WhenUpValue_ShouldModify
✅ RuntimeException_WhenAddNullGlobal_ShouldThrow
✅ RuntimeException_WhenAddNullLocal_ShouldThrow
✅ UnclosedBlockComment_WhenCompiled_ShouldCompileClean
✅ Var_OwnInitialiser_ShouldError
✅ Var_Redeclare_ShouldError
✅ VarNumber_UsedAsArray_ShouldError
✅ VarNumber_UsedAsInstance_ShouldError
✅ ULox.Core.Tests.ByteCodeEngineWarningsTests
✅ Argument_WhenPassedToAnotherFunc_ShouldNotHaveMessageUnused
✅ Argument_WhenPassedToAnotherFuncInLoop_ShouldNotHaveMessageUnused
✅ Argument_WhenPassedToAnotherFuncInLoopInMethod_ShouldNotHaveMessageUnused
✅ Argument_WhenUnused_ShouldHaveMessageUnused
✅ Argument_WhenUsed_ShouldNotHaveMessageUnused
✅ ULox.Core.Tests.ByteCodeIteratorTests
✅ InstructionAndConstantCount_WhenVarInit_ShouldBeExpected
✅ ULox.Core.Tests.ClassCTTITests
✅ EmptyClass_WhenCorrect_ShouldHave1UserType
✅ EmptyClass_WhenExists_ShouldHaveMatchingName
✅ EmptyClass_WhenNonMatchingName_ShouldThrow
✅ Field_WhenFetched_ShouldHaveMatchingFieldName
✅ init_WhenFetched_ShouldHaveMatchingMethodName
✅ Method_WhenFetched_ShouldHaveMatchingMethodName
✅ Mixin_WhenFetched_ShouldHaveMatchingMixinName
✅ Mixin_WhenField_ShouldHaveMatchingFieldFromFlavor
✅ Mixin_WhenMethod_ShouldHaveMatchingMethodFromFlavor
✅ Signs_WhenMatchingField_ShouldHaveMatchingNameContract
✅ Signs_WhenMatchingField_ShouldPass
✅ Signs_WhenMixedIn_ShouldPass
✅ Signs_WhenNoMatchingField_ShouldFailCompile
✅ ULox.Core.Tests.ClassTests
✅ AutoInit_WhenSingleMatchingVarAndInitArgName_ShouldAssignThrough
✅ AutoInit_WhenSubSetMatchVarAndInitArgNames_ShouldAssignThroughAndLeaveOthersDefault
✅ AutoInit_WhenTwoMatchingVarAndInitArgNames_ShouldAssignThrough
✅ Class_Instance
✅ Class_Instance_Init
✅ Class_Instance_NoInit
✅ Class_MultiVarTrailingComma
✅ Class_WhenFrozenAndNonExistingFieldWritten_ShouldPreventChangeAndLog
✅ ClassInstanceFields_WhenAccessed_ShouldHaveInitialValues
✅ ClassMixin_WhenCreated_ShouldHaveValues
✅ CreateClosure_MethodDoesNotExist_Error
✅ Delcared_WhenAccessed_ShouldHaveClassObject
✅ Delcared_WhenAllStages_ShouldCompile
✅ Delcared_WhenTrailingCommaInVarList_ShouldCompile
✅ Engine_Class_2Var
✅ Engine_Class_AttemptToModifyClass_ShouldThrow
✅ Engine_Class_AttemptToModifyInstance_ShouldThrow
✅ Engine_Class_BoundMethod
✅ Engine_Class_BoundMethod_InternalAndReturn
✅ Engine_Class_BoundMethod_ViaReturn
✅ Engine_Class_BoundMethod_ViaReturn_InOtherObject
✅ Engine_Class_BoundMethodWithParams_InternalAndReturn
✅ Engine_Class_CannotReturnExpFromInit
✅ Engine_Class_Init_Simple1
✅ Engine_Class_Method_Simple1
✅ Engine_Class_MethodBeforeInit_Throws
✅ Engine_Class_MultiVar
✅ Engine_Class_Var
✅ Engine_Class_VarAfterInit_Throws
✅ Engine_Class_VarInitChain
✅ Engine_Class_VarInitChain_AndInit
✅ Engine_Class_VarInitChain_AndInitPrint
✅ Engine_Class_VarInitChain2
✅ Engine_Class_VarWithInit
✅ Engine_CNAME_Usage
✅ Engine_Duplicate_ClassInstance_Matches
✅ Engine_Method_Paramless
✅ Engine_Multiple_Scripts2
✅ Engine_This_OutsideClass
✅ Field_InMethodWithoutThis_ShouldAutoLocate
✅ FuncCallMethod_WhenGivenDiffernTypesWithCompatLogic_ShouldSucceed
✅ FunctionInField_WhenAssignedAndCalled_ShouldReturnExpected
✅ Init_AttempCreateField_ShouldFail
✅ InitWithArgsAndLocals_WhenCalled_ShouldSucceed
✅ InitWithManyArgsAndNoLocals_WhenCalled_ShouldSucceed
✅ InitWithManyArgsAndOneLocals_WhenCalled_ShouldSucceed
✅ InitWithoutArgsWithLocals_WhenCalled_ShouldSucceed
✅ InstanceFromClass_WhenFrozenAndNonExistingFieldWritten_ShouldPreventChangeAndLog
✅ InstanceFromClass_WhenHasInitAndInitChainAndNonExistingFieldWritten_ShouldPreventChangeAndLog
✅ Invoke_Dynamic_Error
✅ Invoke_Lib_Error
✅ Invoke_MethodDoesNotExist_Error
✅ Invoke_WrongType_Error
✅ ManyConstants_WhenCompiled_ShouldPass
✅ Method_WhenAccessingSelfField_ShouldSucceed
✅ Method_WhenAssigningExistingFieldFromArg_ShouldSucceed
✅ Method_WhenAssigningExistingFieldFromConst_ShouldSucceed
✅ Method_WhenAssigningExistingFieldFromConstAndInternalPrint_ShouldSucceed
✅ Method_WhenCalledAndReturningThis_ShouldMatchSelf
✅ Method_WhenCalledOnNewInstance_ShouldReturnExpectedValue
✅ MethodWithManyArgsAndOneLocals_WhenCalled_ShouldSucceed
✅ Mixin_WhenCombined_ShouldHaveBoth
✅ Mixin_WhenCombined_ShouldHaveFlavourMethod
✅ Mixin_WhenCombined_ShouldHaveMixinVar
✅ Mixin_WhenCombined_ShouldHaveMixinVarAndSelf
✅ Mixin_WhenCombined_ShouldHaveOriginalVar
✅ Mixin_WhenCombinedAndNamesClash_ShouldHaveSelfVar
✅ Mixin_WhenDeclared_ShouldCompileCleanly
✅ Mixin_WhenDuplicateFlavours_ShouldHaveOnlyOnePresent
✅ Mixin_WhenInstanceMethodsCombinedAndNamesClash_ShouldError
✅ Mixin_WhenManyCombined_ShouldHaveAll
✅ Mixin_WhenManyCombinedAndMixinsOfMixins_ShouldHaveAll
✅ MixinInits_WhenMultipleInit_ShouldDoAll
✅ Prop_WhenCalledOnClass_ShouldFail
✅ PropertyGet_WhenDeclaredAndCalledViaShortHand_ShouldReturnExpectedValue
✅ StaticMethod_WhenBound_ShouldSucceed
✅ ULox.Core.Tests.ConditionalTests
✅ If_WhenCompoundLogicExpressions_ShouldHitFalse
✅ If_WhenExpression_ShouldRun
✅ If_WhenFalseAndElse_ShouldHitElse
✅ If_WhenFalseSingleStatementBody_ShouldSkipAfter
✅ If_WhenNested_ShouldRunInnerElse
✅ If_WhenNestedFor_ShouldRunInner
✅ If_WhenNestedForMany_ShouldRunInner
✅ If_WhenNestedForNegated_ShouldRunInner
✅ If_WhenNestedLoop_ShouldRunInner
✅ If_WhenNestedUnrolled_ShouldRunInner
✅ If_WhenNestedWithElse_ShouldRunInnerElse
✅ ULox.Core.Tests.ContractTests
✅ Meets_WhenAClassAndBClassMatch_ShouldReturnTrue
✅ Meets_WhenADeepAndBClassMatch_ShouldReturnTrue
✅ Meets_WhenADeepAndBClassMismatch_ShouldReturnTrue
✅ Meets_WhenADeepAndBDeepButMismatch_ShouldReturnFalse
✅ Meets_WhenADeepAndBDeepMatch_ShouldReturnTrue
✅ Meets_WhenADynamicAndBDynamicFieldMatch_ShouldReturnTrue
✅ Meets_WhenADynamicAndBDynamicMatch_ShouldReturnTrue
✅ Meets_WhenADynamicAndBDynamicMismatch_ShouldReturnFalse
✅ Meets_WhenADynamicAndBEmptyMatch_ShouldReturnTrue
✅ Meets_WhenAEmptyAndBMismatch_ShouldReturnFalse
✅ Meets_WhenAFromJsonAndBDynamicMatch_ShouldReturnTrue
✅ Meets_WhenAfterSignInCompileChunk_ShouldNotThrow
✅ Meets_WhenAInstAndBClassMismatch_ShouldReturnFalse
✅ Meets_WhenAInstAndBInstMatch_ShouldReturnTrue
✅ Meets_WhenAInstAndBInstMismatch_ShouldReturnFalse
✅ Meets_WhenAInstAndBMatch_ShouldReturnTrue
✅ Meets_WhenAJsonAndBClassEmptyMatch_ShouldReturnTrue
✅ Meets_WhenAJsonAndBClassMatch_ShouldReturnTrue
✅ Meets_WhenAJsonAndBClassMismatch_ShouldReturnFalse
✅ Meets_WhenITAndTMatch_ShouldNotThrow
✅ Meets_WhenITAndTMatchWithVars_ShouldNotThrow
✅ Signs_WhenITAndTDoNotArity_ShouldThrow
✅ Signs_WhenITAndTDoNotMatch_ShouldThrow
✅ Signs_WhenITAndTDoNotMatchArity_ShouldThrow
✅ Signs_WhenITAndTMixinMatch_ShouldNotThrow
✅ ULox.Core.Tests.DesugarTests
✅ DeclareVar_WhenDesugar_ShouldHaveSame
✅ Empty_WhenDesugar_DoesNotThrow
✅ EmptyDynamic_WhenDesugar_ShouldIdentDynamic
✅ EmptyList_WhenDesugar_ShouldIdentList
✅ EmptyMap_WhenDesugar_ShouldIdentMap
✅ For_WhenArr_ShouldBeFor
✅ For_WhenExpArr_ShouldBeFor
✅ Init_WhenDesugar_ShouldSelfAssign
✅ Loop_WhenArr_ShouldBeFor
✅ Loop_WhenExpArr_ShouldBeFor
✅ Loop_WhenInfinite_ShouldBeFor
✅ PlusEqual_WhenDesugar_ShouldAssignAndExpPlus
✅ Soa_FooAB_ClassWith2Arrays
✅ StringInterp_WhenDesugar_ShouldHaveMoreTokens
✅ While_WhenDesugar_ShouldBeFor
✅ ULox.Core.Tests.DynamicTests
✅ Dyanic_RemoveFieldWhenReadOnly_ShouldError
✅ Dynamic_WhenCreated_ShouldPrintInstType
✅ Dynamic_WhenInlineNested_ShouldPrint
✅ Dynamic_WhenInvalid_ShouldFail
✅ Field_WhenSingleDynamicInline_ShouldSucceed
✅ Fields_WhenAddedToDynamic_ShouldSucceed
✅ Fields_WhenAddedToDynamicInline_ShouldSucceed
✅ ULox.Core.Tests.EmbedTests
✅ PushCallFrameAndRun_WhenDifferentContext_ShouldPass
✅ PushCallFrameAndRun_WhenSameContext_ShouldPass
✅ ULox.Core.Tests.EnumTests
✅ All_WhenEmptyFoo_ShouldPrintNothing
✅ All_WhenFoo_ShouldPrintAll
✅ Auto0th_WhenPrinted_ShouldBe0
✅ Declare_WhenDupKey_ShouldFail
✅ Declared_WhenGivenLitterals_ShouldPass
✅ Delcared_When2Values_ShouldPass
✅ Delcared_When2ValuesAndTrailingComma_ShouldPass
✅ Delcared_WhenEmpty_ShouldPass
✅ Delcared_WhenPrinted_ShouldSayName
✅ Enum_WhenFromNative_ShouldHaveMatchingValues
✅ EnumAll_WhenCount_ShouldBe2
✅ EnumValue_WhenAutoThenManual_ShouldError
✅ EnumValue_WhenDotEnum_ShouldBeTrue
✅ EnumValue_WhenDotName_ShouldBeBarBaz
✅ EnumValue_WhenDotValue_ShouldBeHelloWorld
✅ EnumValue_WhenManualThenAuto_ShouldError
✅ EnumValue_WhenSetAttempted_ShouldFail
✅ EnumValueEquality_WhenDifferentEnumValue_ShouldBeFalse
✅ EnumValueEquality_WhenSameEnumValue_ShouldBeTrue
✅ FirstAll_WhenExists_ShouldReturnMatch
✅ Match_WhenEnumValues_ShouldPass
✅ Match_WhenEnumValuesKeys_ShouldPass
✅ Match_WhenEnumValuesRaw_ShouldPass
✅ TypeOf_WhenEnum_ShouldBeEnum
✅ Valued_WhenPrinted_ShouldBe7
✅ Valued_WhenWrite_ShouldError
✅ ValuedFollowingAuto_WhenPrinted_ShouldBe8
✅ ValuedNonNumber_WhenPrinted_ShouldBeHello
✅ Var_WhenAssignedFromEnum_ShouldBe0
✅ ULox.Core.Tests.ExpectTests
✅ Expect_Falsy_Aborts
✅ Expect_FalsyMultiPartExpression_Aborts
✅ Expect_FalsyMultiPartExpressionWithMessage_AbortsWithMessage
✅ Expect_FalsyWithMessage_AbortsWithMessage
✅ Expect_MultiPartExpressionWithTrailingComma_Passes
✅ Expect_TruthyLiteral_Continues
✅ Expect_TruthyMultiPartExpression_Continues
✅ Expect_TruthyMultiPartExpressionWithMessage_Continues
✅ Expect_TruthyVar_Continues
✅ Expect_TruthyWithMessage_Continues
✅ Expect_TruthyWithMessageThenFalsey_Aborts
✅ Expect_TruthyWithMessageThenFalseyMultiPartExpressionWithMessage_Aborts
✅ ULox.Core.Tests.FastListTests
✅ Add_WhenCalledOnEmpty_ShouldHave1Count
✅ Clear_WhenCalledOnOneElement_ShouldHave0Count
✅ Count_WhenEmpty_ShouldHave0
✅ EnsureCapacity_WhenLess_ShouldHaveSame
✅ EnsureCapacity_WhenMore_ShouldNotHaveSame
✅ GetEnumerator_WhenTwoElements_ShouldPrintBoth
✅ Indexer_WhenCalledOnOneElement_ShouldReturnElement
✅ Indexer_WhenCalledOnOneElement_ShouldSetElement
✅ Remove_WhenDoesNotHaveElement_ShouldHave1Count
✅ Remove_WhenHasElement_ShouldHave0Count
✅ RemoveAt_WhenCalledOnOneElement_ShouldHave0Count
✅ ULox.Core.Tests.FastStackTests
✅ ArrayIndex_WhenCalledOnTwoElementWith0_ShouldReplaceObjectAtIndex
✅ Count_WhenEmpty_ShouldHave0
✅ DiscardPop_WhenCalledOnTwoElementWithDownTwo_ShouldHave0Count
✅ Grow_WhenPushTwiceStartingCapByGrowFactor_ShouldNotThrow
✅ Peek_WhenCalledOnOneElement_ShouldReturnObjectAndHave1Count
✅ Peek_WhenCalledOnTwoElementWithDownOne_ShouldReturn0ObjectAndHave2Count
✅ Pop_WhenCalledOnOneElement_ShouldHave0Count
✅ Push_WhenCalledOnEmpty_ShouldHave1Count
✅ Reset_WhenCalledOnOneElement_ShouldHave0Count
✅ SetAt_WhenCalledOnTwoElementWith0_ShouldReplaceObjectAtIndex
✅ ULox.Core.Tests.FreezeTests
✅ Freeze_WhenDynamic_ShouldBeIsFrozen
✅ Freeze_WhenNumber_ShouldFail
✅ Instance_WhenUnfrozen_ShouldActAsDynamic
✅ ULox.Core.Tests.FunctionalCollectionTests
✅ FunctionalCollectionUlox_WhenCompiled_ShouldNotError
✅ NativeListMap_WhenCompiled_ShouldNotError
✅ ULox.Core.Tests.FunctionAndDelegateTests
✅ Delegate_When1ArgsAndCalled_ShouldInvoke
✅ Delegate_When2ArgsAndCalled_ShouldInvoke
✅ Delegate_WhenNoArgsAndCalled_ShouldInvoke
✅ Delegate_WhenNoArgsAndCalledWith1_ShouldError
✅ Delegate_WhenPassedAsAnArgAndInvoked_ShouldInvoke
✅ Delegate_WhenPassedAsAnArgAndInvokedAndReturning_ShouldMatchExpected
✅ Delegate_WhenPassedAsAnArgAndInvokedAndReturning_ShouldMatchExpected_Alt
✅ Fun_WhenAnonAndRhsOfAssign_ShouldAssignAndNotBeGlobal
✅ Fun_WhenManyMultiNamedOmittedReturns_ShouldPrintMany
✅ Fun_WhenMultiNamedOmittedReturns_ShouldPrint3AndNeg1
✅ Fun_WhenMultiNamedReturnsImplicit_ShouldPrint3AndNeg1
✅ Fun_WhenNamedAndRhsOfAssign_ShouldAssignAndBeGlobal
✅ Fun_WhenNamedReturns_ShouldPass
✅ Fun_WhenNamedReturnsC_ShouldPrint3
✅ Fun_WhenNamedReturnsImplicit_ShouldPrint3
✅ ULox.Core.Tests.HashStringComparerTests
✅ Compare_WhenDictDoesContain_ShouldReturnTrue
✅ Compare_WhenDictDoesNotContain_ShouldReturnFalse
✅ CompareTo_WhenSameValues_ShouldReturnTrue
✅ ULox.Core.Tests.HashStringTests
✅ Equality_WhenSameObject_ShouldReturnTrue
✅ Equality_WhenSameUnderlyingTarget_ShouldReturnTrue
✅ Hash_WhenSameUnderlyingString_ShouldMatch
✅ Inequality_WhenDifferentUnderlyingTarget_ShouldReturnTrue
✅ Inequality_WhenSameUnderlyingTarget_ShouldReturnFalse
✅ String_WhenSameUnderlyingString_ShouldMatch
✅ ULox.Core.Tests.IndexableStackTests
✅ Peek_WhenTwoPushedCalled_ShouldReturnBackAndCountShouldBeTwo
✅ PeekDown_WhenTwoPushedCalledWith1_ShouldReturnFirst
✅ Pop_WhenTwoPushedCalled_ShouldReturnBackAndCountShouldBeOne
✅ Push_WhenCalled_ShouldIncreaseCount
✅ ULox.Core.Tests.InnerVMTests
✅ Engine_ChildVM_Run
✅ Engine_InternalSandbox_CanPassIn
✅ Engine_InternalSandbox_CanReturnOut
✅ Engine_InternalSandbox_CanWriteGlobalOut
✅ Engine_InternalSandbox_YieldResume
✅ Engine_Sandbox_AsGenerator
✅ Engine_Sandbox_CannotAccess
✅ ULox.Core.Tests.JsonSerialisationTests
✅ Deserialise_WhenGivenKnownString_ShouldReturnExpectedObject
✅ DeserialiseSerialise_WhenGivenKnownString_ShouldReturnExpectedObject
✅ DeserialiseViaLibrary_WhenGivenKnownArray_ShouldReturnExpectedOutput
✅ DeserialiseViaLibrary_WhenGivenKnownObject_ShouldReturnExpectedOutput
✅ Serialise_WhenGiveBiggerObject_ShouldReturnExpectedOutput
✅ Serialise_WhenGivenEmptyObject_ShouldReturnExpectedOutput
✅ Serialise_WhenGivenKnownObject_ShouldReturnExpectedOutput
✅ Serialise_WhenGivenNull_ShouldReturnExpectedOutput
✅ SerialiseViaLibrary_WhenGivenKnownObject_ShouldReturnExpectedOutput
✅ ULox.Core.Tests.LabelTests
✅ Engine_MapEmtpy_Count0
✅ ULox.Core.Tests.ListUsageTests
✅ Back_When3LitteralItems_ShouldBe3
✅ Clear_When3LitteralItems_ShouldBeCount0
✅ Count_WhenChainAddNotEmpty_SohuldBe3
✅ Count_WhenEmpty_ShouldBe0
✅ Count_WhenNotEmpty_SohuldBe3
✅ Count_WhenNull_ShouldFail
✅ Engine_List
✅ Engine_List_ByName
✅ Engine_NativeList_Add_CountInc
✅ Engine_NativeList_Add_ValueMatches
✅ Engine_NativeList_AddThenSet_NewValueMatches
✅ Engine_NativeList_Count
✅ Engine_NativeList_Create
✅ Engine_NativeList_Resize10_CountIs0
✅ Engine_NativeList_SameObjectAddThenRemove_CountIs0
✅ Engine_NativeList_SameValueAddThenRemove_CountIs0
✅ Engine_NativeList_SetNonTrivial_ValueMatches
✅ Engine_NativeList_SetNonTrivialWhenReadOnly_ShouldFail
✅ Front_When3LitteralItems_ShouldBe1
✅ Grow_When0_ShouldGiveEmpty
✅ Grow_WhenAlreadyLarger_ShouldDoNothing
✅ Grow_WhenFiveOnes_ShouldGiveFiveElementsOfOne
✅ ListLiteral_WhenSingleItemAndAssigned_ShouldMatchValues
✅ ListLiteral_WhenThreeItemsAndAssigned_ShouldMatchValues
✅ ListLiteral_WhenThreeItemsAndAssignedAndTrialingComma_ShouldMatchValues
✅ ListLiteral_WhenThreeNonTrivialItemsAndAssigned_ShouldMatchValues
✅ NativeList_ReadOnlyThenAdd_Error
✅ Shrink_When0_ShouldGiveEmpty
✅ Shrink_When5To2_ShouldBeTwoFront
✅ ULox.Core.Tests.LoopingTests
✅ Break_WhenBreakOutOnFirstLoop_ShouldBreakOnFirst
✅ Continue_WhenHit_ShouldReturnToStartOfLoop
✅ For_When2Siblings_ShouldCompile
✅ For_WhenBreakAt5_ShouldPrintUpTo6
✅ For_WhenContinued_ShouldMoveToIterationStep
✅ For_WhenContinuedAndExternalDeclaredAndAssignedI_ShouldMoveToIterationStep
✅ For_WhenContinuedAndExternalDeclaredI_ShouldMoveToIterationStep
✅ For_WhenGivenNumberArray_ShouldPrintItems
✅ For_WhenLimitedIterations_ShouldPrint3Times
✅ For_WhenNoEscape_ShouldNotCompile
✅ For_WhenUsedAsWhile_ShouldCompile
✅ Loop_When2Siblings_ShouldCompile
✅ Loop_WhenBreakAt5_ShouldPrintUpTo6
✅ Loop_WhenContinued_ShouldMoveToIterationStep
✅ Loop_WhenCustomIndexAlreadyInScope_ShouldThrow
✅ Loop_WhenCustomItemAlreadyInScope_ShouldThrow
✅ Loop_WhenDecreaseCount_ShouldPrintItems
✅ Loop_WhenGivenEmptyMap_ShouldDoNothing
✅ Loop_WhenGivenEmptyNativeArray_ShouldTerminate
✅ Loop_WhenGivenInstanceFieldIdentifier_ShouldPrintItems
✅ Loop_WhenGivenInstanceFieldIdentifierAndCustomNames_ShouldPrintItemsAndInfo
✅ Loop_WhenGivenNonEmptyMap_ShouldFail
✅ Loop_WhenGivenNonEmptyMapWithValidNumberKey_ShouldPass
✅ Loop_WhenGivenNull_ShouldSkipLoop
✅ Loop_WhenGivenNumber_ShouldFailToInvoke
✅ Loop_WhenGivenNumberArray_ShouldPrintIndicies
✅ Loop_WhenGivenNumberArray_ShouldPrintItems
✅ Loop_WhenGivenNumberArrayAndCustomNames_ShouldPrintIndicies
✅ Loop_WhenGivenNumberArrayAndItemName_ShouldPrintItems
✅ Loop_WhenGivenNumberArrayAndItemNameAndNamedCount_ShouldPrintItems
✅ Loop_WhenGivenNumberArrayAndItemNameAndPrintCount_ShouldPrintItems
✅ Loop_WhenGivenString_ShouldFailToInvoke
✅ Loop_WhenGivenStub_ShouldFailToInvoke
✅ Loop_WhenIndexAlreadyInScope_ShouldThrow
✅ Loop_WhenInFunWithArgCollection_ShouldPrintItems
✅ Loop_WhenItemAlreadyInScope_ShouldThrow
✅ Loop_WhenNested_ShouldPrintExpected
✅ Loop_WhenNestedContinued_ShouldMoveToIterationStep
✅ Loop_WhenNestedLocalsAndContinued_ShouldMoveToIterationStep
✅ Loop_WhenNestedWithExstingLocals_ShouldPrintItems
✅ Loop_WhenNoEscape_ShouldNotCompile
✅ LoopNested_WhenGivenNumberArrayAndItemName_ShouldPrintItems
✅ Remove_WhenWithinLoop_ShouldRemoveItem
✅ While_WhenIncrementLimited_ShouldIterateTwice
✅ While_WhenNested_ShouldNSquared
✅ While_WhenNestedAndInnerCounterDeclare_ShouldNSquared
✅ ULox.Core.Tests.MapUsageTests
✅ CreateOrUpdate_Chained_ShouldHaveExpected
✅ Engine_MapByNameThenSet_MatchesValue
✅ Engine_MapEmtpy_Count0
✅ Engine_MapSet_Count1
✅ Engine_MapSet_MatchesValue
✅ Engine_MapSetAndUpdate_MatchesValue
✅ Engine_NativeMap_Create
✅ Invalid_WhenMixingListThenMap_ShouldFail
✅ Map_ReadOnlyThenSet_Error
✅ ULox.Core.Tests.MatchTests
✅ Match_WhenBodyWithGlobals_ShouldPass
✅ Match_WhenBodyWithLocal_ShouldPass
✅ Match_WhenBodyWithManyLocal_ShouldPass
✅ Match_WhenBoolFalseAndFull_ShouldPass
✅ Match_WhenBoolFalseAndMissing_ShouldThrow
✅ Match_WhenBoolTrueAndFull_ShouldPass
✅ Match_WhenEnum_ShouldPass
✅ Match_WhenEnumAndEmptyCase_ShouldPass
✅ Match_WhenFunRetval_ShouldPass
✅ Match_WhenInt_ShouldPass
✅ Match_WhenInt0AndFull_ShouldPass
✅ Match_WhenInt1AndFull_ShouldPass
✅ Match_WhenInt2AndExpressionMatches_ShouldPass
✅ Match_WhenInt2AndUnmatched_ShouldFail
✅ Match_WhenIntWithBody_ShouldPass
✅ Match_WhenString_ShouldPass
✅ Match_WhenStringAndReverseOrder_ShouldPass
✅ ULox.Core.Tests.MathTests
✅ Acos_WhenSin10_ShouldBe80
✅ Asin_WhenCos10_ShouldBe80
✅ Atan_WhenTan10_ShouldBe10
✅ Atan2_When5andNeg5_ShouldBe
✅ Ceil_When5point5_ShouldBe6
✅ Clamp_When0And1And2_ShouldBe1
✅ Cos_When25_ShouldReturn
✅ Dampen_When1and2_ShouldBeCloser
✅ Exp_When3_ShouldBe20something
✅ Floor_When5point5_ShouldBe5
✅ Lerp_When1to2andQuarter_ShouldBe1andQuarter
✅ Literal_WhenDouble_ShouldNotLosePrecision
✅ Ln_WhenE_ShouldBe1
✅ Log_When100and10_ShouldBe10
✅ Max_When1And2_ShouldBe2
✅ Min_When1And2_ShouldBe1
✅ MoveTowards_When1to2and3_ShouldBe2
✅ Pi_WhenUsed_ShouldMatchExpected
✅ Pow_When33_ShouldBe27
✅ Rad2Deg_When2Pi_ShouldBe360
✅ Rand_WhenNext_ShouldReturn01
✅ RandUnitCircle_WhenCalled_ShouldBeLessThan1Radius
✅ Remap_When0And1And2_ShouldBe1
✅ Remap_WhenExpected_ShouldBe2
✅ Round_WhenLower_ShouldBeFloor
✅ Round_WhenUpper_ShouldBeCeil
✅ Sign_WhenNegative_ShouldMinus1
✅ Sign_WhenPositive_Should1
✅ Sin_When25_ShouldReturn
✅ Sqrt_When4_ShouldBe2
✅ Tan_When25_ShouldReturn
✅ ULox.Core.Tests.MutliReturnTests
✅ Run_WhenMultiVarAssignInline_ShouldMatchExpected
✅ Run_WhenMultiVarAssignInlineNested_ShouldMatchExpected
✅ Run_WhenReturn2AndTake2_ShouldMatchExpected
✅ Run_WhenReturn2AndTake2WithParams_ShouldMatchExpected
✅ Run_WhenReturn2Take1_ShouldError
✅ Run_WhenReturn2Take3_ShouldError
✅ Run_WhenReturn5AndTake5_ShouldMatchExpected
✅ Run_WhenReturnNoneTake2_ShouldError
✅ Run_WhenVec2Tuple_ShouldNotError
✅ Vec2Add_WhenGivenKnowValues_ShouldReturnExpected
✅ Vec2Add_WhenGivenKnowValuesNested_ShouldReturnExpected
✅ ULox.Core.Tests.NativeCallTests
✅ Engine_Compile_NativeFunc_Call
✅ Engine_NativeFunc_Call_0Param_String
✅ Engine_NativeFunc_Call_1Param_String
✅ Run_WhenNativeFuncWithMultipleArgs_ShouldReceiveAllInOrder
✅ Run_WhenReturn2FromExternalFunction_ShouldMatchExpected
✅ Run_WhenReturn5FromExternalFunction_ShouldMatchExpected
✅ Run_WhenReturnFromExternalFunction_ShouldMatchExpected
✅ Run_WhenReturnNothing_ShouldNotHaveError
✅ Run_WhenReturnNothingFromExternalFunctionInMiddleOfMathOps_ShouldNotImpactMathOps
✅ Run_WhenReturnNothingFromExternalFunctionInMiddleOfMathOpsAndAllLocals_ShouldNotImpactMathOps
✅ ULox.Core.Tests.NativeFunctionalCollectionTests
✅ Filter_WhenGiven5intsIsEvenAndReduceAccum_ShouldReturn4
✅ First_WhenGiven5IntsAndIs3_ShouldReturn3
✅ Fold_WhenGiven1And5intsAndAccum_ShouldReturn11
✅ Fork_WhenGiven3Funcs_ShouldRunEachInOrderAndReturn3CountArray
✅ Map_WhenGiven5intsAndAddOneAndReduceAccum_ShouldReturn15
✅ OrderBy_WhenGiven5OutOfOrderInts_ShouldReturnInOrder
✅ Reduce_WhenGiven5intsAndAccum_ShouldReturn10
✅ Until_WhenGiven3FuncsSecondSuccess_ShouldRunFirstTwoOnly
✅ ULox.Core.Tests.OperatorTests
✅ Add_When1and2_ShouldPrint3
✅ Add_When1and2and3_ShouldPrint6
✅ Div_When1and2_ShouldPrint05
✅ Mod_When1and2_ShouldPrint1
✅ Mod_When2and3_ShouldPrint2
✅ Mod_When3and2_ShouldPrint1
✅ Mod_WhenNeg2and3_ShouldPrint1
✅ Mul_When1and2_ShouldPrint2
✅ Mul_When1and2and3_ShouldPrint6
✅ Mul_When1and2and3and4_ShouldPrint24
✅ Op_WhenIncompatTypes_ShouldError("-")
✅ Op_WhenIncompatTypes_ShouldError("*")
✅ Op_WhenIncompatTypes_ShouldError("/")
✅ Op_WhenIncompatTypes_ShouldError("%")
✅ Op_WhenIncompatTypes_ShouldError("+")
✅ Op_WhenIncompatTypes_ShouldError("<")
✅ Op_WhenIncompatTypes_ShouldError(">")
✅ Sub_When1and2_ShouldPrintNeg1
✅ Sub_When1and2and3_ShouldPrintNeg4
✅ ULox.Core.Tests.OptimiserTests
✅ Optimiser_ChainCalls_CollapsesToRegisterBasedOp
✅ Optimiser_CountOf_CollapsesToRegisterBasedOp
✅ Optimiser_Engine_Compile_Func_Inner_Logic
✅ Optimiser_GetIndex_CollapsesToRegisterBasedOp
✅ Optimiser_GetProp_CollapsesToRegisterBasedOp
✅ Optimiser_GetSetPropInClass_CollapsesToRegisterBasedOp
✅ Optimiser_GotoLabelWithDeadInBetween_RemovesGotoAndLabel
✅ Optimiser_InitWithManyArgsAndNoLocals_WhenCalled_ShouldSucceed
✅ Optimiser_JumpNowhere_RemovesUselessJump
✅ Optimiser_JumpOps_RemovesUnreachable
✅ Optimiser_Loop_WhenBreakAt5_ShouldPrintUpTo6
✅ Optimiser_Mixin_WhenCombined_ShouldHaveFlavourMethod
✅ Optimiser_Negate_CollapsesToRegisterBasedOp
✅ Optimiser_Not_CollapsesToRegisterBasedOp
✅ Optimiser_NothingToOptimise_DoesNothing
✅ Optimiser_RegisterableCompare_CollapsesToRegisterBasedOp
✅ Optimiser_RegisterableMath_CollapsesToRegisterBasedOp
✅ Optimiser_Registerise_For
✅ Optimiser_Remove_WhenWithinLoop_ShouldRemoveItem
✅ Optimiser_Reorder_AutoInit_WhenSubSetMatchVarAndInitArgNames_ShouldAssignThroughAndLeaveOthersDefault
✅ Optimiser_Reorder_AutoInit_WhenTwoMatchingVarAndInitArgNames_ShouldAssignThrough
✅ Optimiser_Reorder_Engine_Cycle_While_Nested_Locals
✅ Optimiser_Reorder_Loop_WhenGivenNumberArrayAndItemName_ShouldPrintItems
✅ Optimiser_Reorder_While
✅ Optimiser_Reorder_WhileInFunc
✅ Optimiser_Sample_ControlFlow
✅ Optimiser_SetIndex_CollapsesToRegisterBasedOp
✅ Optimiser_SetProp_CollapsesToRegisterBasedOp
✅ Optimiser_SubsequentLabel_CollapseAndRemoveLabel
✅ Optimiser_SubsequentLabelTrue_CollapseAndRemoveLabel
✅ Optimiser_UnusedLabel_RemovesDeadCode
✅ Optimiser_UnusedLabelNotAtStart_RemovesDeadCode
✅ Optimiser_Vec2_Operations_ShouldRemoveItem
✅ Optimiser_WeavedGoto_ShouldReorg
✅ ULox.Core.Tests.PlatformEngineTests
✅ PlatformFindFiles_Root_NotEmpty
✅ ULox.Core.Tests.PlatformTests
✅ ctor_WhenDefault_ShouldNotThrow
✅ FindFiles_WhenRootAndAllAndFalse_ShouldReturnNonEmptyArray
✅ ULox.Core.Tests.ProfileSourceTests
✅ Run_BouncingBallProfileScript(ULox.Script)
✅ Run_BouncingBallProfileScript(ULox.Script)
✅ Run_BouncingBallProfileScript(ULox.Script)
✅ Run_BouncingBallProfileScript(ULox.Script)
✅ Run_BouncingBallProfileScript(ULox.Script)
✅ ULox.Core.Tests.ReadOnlyTests
✅ Dynamic_ReadOnlyHierarchyThenModifyInner_ShouldError
✅ ReadOnly_InstThenModify_Error
✅ ReadOnly_Local_ShouldError
✅ ReadOnly_StaticThenModify_Error
✅ ULox.Core.Tests.ScannerTests
✅ Comments
✅ FunctionDeclareCall
✅ Scanner_FloatVarDeclare_TokenTypeMatch("var PI = 3.14;")
✅ Scanner_FloatVarDeclare_TokenTypeMatch("var PI = 3.14;")
✅ Scanner_FloatVarDeclare_TokenTypeMatch("var PI =3.14;")
✅ Scanner_FloatVarDeclare_TokenTypeMatch("var PI= 3.14;")
✅ Scanner_FloatVarDeclare_TokenTypeMatch("var PI=3.14;")
✅ Scanner_FloatVarDeclare_TokenTypeMatch("var\r\nPI\r\n=\r\n3.14\r\n;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand = 7 ;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand = 7;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand = 71234 ;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand =7;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand= 7 ;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand= 7;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var rand=7;")
✅ Scanner_IntVarDeclare_TokenTypeMatch("var\r\nrand\r\n=\r\n7\r\n;")
✅ Scanner_Reset_SameResult
✅ Scanner_StringVarDeclare_TokenTypeMatch("var lang = \"lox\";")
✅ Scanner_StringVarDeclare_TokenTypeMatch("var lang\r\n=\r\n\"lox\"\r\n;")
✅ Scanner_StringVarDeclare_TokenTypeMatch("var lang=\"lox\";")
✅ Scanner_StringVarDeclare_TokenTypeMatch("var multi = \"Now is the winter of our discontent\r\nMade glorious summer by this sun of York;\r\nAnd all the clouds that lour'd upon our house\r\nIn the deep bosom of the ocean buried.\"; ")
✅ Scanner_WhenUnterminatedString_ShouldThrow
✅ SimpleString
✅ StringInterp_WhenEscaped_ShouldMatchTokens
✅ ULox.Core.Tests.SimpleStringSerialisationTests
✅ Serialise_WhenGivenKnownObject_ShouldReturnExpectedOutput
✅ ULox.Core.Tests.SoaTests
✅ Archetype_WhenAuto
✅ Archetype_WhenManual
✅ Clear_WhenRemoveAt_Inokes
✅ OnAdd_WhenAdded_Inokes
✅ OnRemove_WhenRemoveAt_Inokes
✅ Soa_Add1_Count1
✅ Soa_Add1ThenClear_Count0
✅ Soa_Add1ThenRemoveAt0_Count0
✅ Soa_RealData_Count0
✅ Soa_WhenEmptyCount_0
✅ ULox.Core.Tests.StaticClassTests
✅ Engine_Class_StaticField
✅ Engine_Class_StaticFields
✅ Engine_Class_StaticFields_Modify
✅ Engine_Class_StaticFields_WhenClassModified_ShouldThrow
✅ Engine_NoThis_Method_WorksAsStatic
✅ Static_Method_OnClass
✅ Static_Method_OnInstance
✅ ULox.Core.Tests.StringTests
✅ Interpolate_WhenEscaped_ShouldPrintBrace
✅ Interpolate_WhenExpression_ShouldPrint3
✅ Interpolate_WhenFunc_ShouldPrint3
✅ Interpolate_WhenGlobal_ShouldPrint3
✅ Interpolate_WhenLitteral_ShouldPrint3
✅ Interpolate_WhenMultipleInterpolatesAndExpression_ShouldPrint314
✅ str_WhenConcat_ShouldMatch
✅ ULox.Core.Tests.TableTests
✅ Add_WhenEmpty_ShouldHave1
✅ Contains_When1Added_ShouldReturnTrue
✅ ULox.Core.Tests.TestSetTests
✅ Engine_AnonTestSet_Empty
✅ Engine_AnonTestSetAndAnonTest_Empty
✅ Engine_Test_ContextNames
✅ Engine_Test_Empty
✅ Engine_Test_MultipleEmpty
✅ Engine_Test_MultipleSimple
✅ Engine_Test_ReportAll
✅ Engine_Test_Simple1
✅ Engine_Test_Simple2
✅ Engine_Test_Simple3
✅ Engine_Test_Simple4
✅ Engine_Test_Simple4_Skipped
✅ Test_InvalidLocation_ShouldFail
✅ Test_WhenDuplicate_ShouldFail
✅ Test_WithArgsAndInlineMultiDataSet_ShouldPass
✅ Test_WithArgsEmptyDataSet_ShouldPass
✅ Test_WithArgsMultiDataSet_ShouldPass
✅ Test_WithArgsNoData_ShouldFailCannotAddNulls
✅ Test_WithArgsSingleDataSet_ShouldPass
✅ Test_WithDataSetAndManuallyGrabbed_ShouldPass
✅ Test_WithFixtureDataPrintSingleData_ShouldPass
✅ Test_WithFixtureDataPrintSingleInlineData_ShouldPass
✅ Test_WithManualDataSourceSingle_ShouldPass
✅ Test_WithNoSourceAndNoArg_ShouldPass
✅ Test_WithPrintSingleData_ShouldPass
✅ Test_WithSourceAndSingleArg_ShouldPass
✅ Test_WithSourceButNoArg_ShouldPassNoEffect
✅ TestFxiture_WhenPrintInBodyAndNoCases_ShouldNotPrint
✅ TestFxiture_WhenPrintInBodyAndTwoCases_ShouldPrintTwice
✅ TestLocal_WhenPrinted_ShouldMatch
✅ ULox.Core.Tests.TypeOfTests
✅ TypeOf_WhenCalledOn5_ShouldReturnNumber
✅ TypeOf_WhenCalledOnDynamic_ShouldReturnDynamic
✅ TypeOf_WhenCalledOnList_ShouldReturnList
✅ TypeOf_WhenCalledOnMap_ShouldReturnMap
✅ TypeOf_WhenCalledOnNull_ShouldReturnNull
✅ TypeOf_WhenCalledOnString_ShouldReturnString
✅ TypeOf_WhenCalledOnTrue_ShouldReturnBool
✅ TypeOf_WhenCalledOnTypeOfResult_ShouldReturnTrue
✅ TypeOf_WhenCalledOnUserClass_ShouldReturnUserTypeName
✅ TypeOf_WhenCalledOnUserType_ShouldReturnUserTypeName
✅ TypeOf_WhenCalledUserTypeComparedToClass_ShouldReturnTrue
✅ TypeOf_WhenComparedOnSameType_ShouldReturnTrue
✅ ULox.Core.Tests.UpdateTests
✅ Update_WhenBool_ShouldUpdateValue
✅ Update_WhenClassIsEmptyAndNotSameType_ShouldNotThrow
✅ Update_WhenClassIsEmptyAndSameType_ShouldNotThrow
✅ Update_WhenClassIsNotEmptyAndDifferentAndSameType_ShouldUpdateValue
✅ Update_WhenNotSameValueType_ShouldNotUpdateValue
✅ Update_WhenNumber_ShouldUpdateValue
✅ Update_WhenPartialHierarchyMatch_ShouldUpdateValue
✅ Update_WhenPartialMatch_ShouldUpdateValue
✅ Update_WhenPartialWithNativeCollections_ShouldUpdateValue
✅ Update_WhenSameValueType_ShouldUpdateValue
✅ Update_WhenString_ShouldUpdateValue
Loading