Compare commits

...

41 commits

Author SHA1 Message Date
Ukendio
8822be58a9 Add assertion against existing idr
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-04-22 04:52:21 +02:00
Ukendio
ef0f69ac6d Set signal with hook 2025-04-22 04:49:52 +02:00
Marcus
42401f93ae
Add component registration and metadata API (#219)
* Add component registration and metadata API

* Fix test case erroring

* Fix type issues

* Add component to hook calls' arguments

* Add is_tag function

* Allow focus to capture a single Test

* Add test cases for preregistered tags
2025-04-22 04:38:30 +02:00
Axen
6835f91a09
Docs/hooks set order warning (#220)
* Add docs warning about hook set order

* Improve warning wording
2025-04-22 04:37:04 +02:00
Neon
e5a30f2bc7
Fix jecs addon repository links
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-04-17 21:08:32 +02:00
as8d
9163285f9e
Add a replication and input section and add feces and axis to addons.md (#217)
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-04-14 17:47:39 +02:00
Ukendio
6ec8ed69e9 Pin luau version
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-04-13 05:27:13 +02:00
Ukendio
f9bacf3f54 Remove until end of range for relationship 2025-04-13 05:21:41 +02:00
Ukendio
765a7f9a36 Removed unnecessary tests 2025-04-13 02:37:58 +02:00
Ukendio
66636fd844 Merge branch 'main' of https://github.com/Ukendio/jecs 2025-04-13 01:58:36 +02:00
Ukendio
fc4f4a6a3a Add type overloads for World.has method 2025-04-13 01:52:41 +02:00
Ukendio
447bb76bb8 Optimize world:has and improve type annotations 2025-04-13 01:51:21 +02:00
nidho
d85a182c76
Fix duplicated 'Luau/TypeScript' in documentation (#216)
Some checks are pending
analysis / Run Luau Analyze (push) Waiting to run
deploy-docs / build (push) Waiting to run
deploy-docs / Deploy (push) Blocked by required conditions
publish-npm / publish (push) Waiting to run
unit-testing / Run Luau Tests (push) Waiting to run
2025-04-11 23:25:52 +02:00
Ukendio
4c958071e0 Change observers export value 2025-04-10 21:10:42 +02:00
Ukendio
ba31aa98ba Cleanup testing slightly 2025-04-10 19:52:07 +02:00
Ukendio
5c051eb737 Merge branch 'main' of https://github.com/Ukendio/jecs 2025-04-06 20:38:53 +02:00
Marcus
d3830a1c2a
Replace linked list with bidirectional edges
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-04-06 19:24:10 +02:00
Ukendio
001431b836 Experiment: rip out linked lists from archetype graph 2025-04-05 06:04:48 +02:00
Ukendio
6bb36f281e Merge branch 'main' of https://github.com/Ukendio/jecs
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-04-05 04:55:21 +02:00
Ukendio
74ef525092 Fix dst clone 2025-04-05 04:55:11 +02:00
Ukendio
df6c568c6b 0.6.0-rc.1 2025-04-05 00:42:04 +02:00
Ukendio
d24ab71e4c Style fixes 2025-04-05 00:41:38 +02:00
Sivak
5e6b030fb4
Change OnSet to OnChange in type definitions for typescript (#214)
Some checks are pending
analysis / Run Luau Analyze (push) Waiting to run
deploy-docs / build (push) Waiting to run
deploy-docs / Deploy (push) Blocked by required conditions
publish-npm / publish (push) Waiting to run
unit-testing / Run Luau Tests (push) Waiting to run
2025-04-05 00:36:04 +02:00
EncodedVenom
908d83a619
Fix typo
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-03-30 20:00:49 -04:00
Ukendio
41ebde415f OnChange should invoke after data has been set
Some checks are pending
analysis / Run Luau Analyze (push) Waiting to run
deploy-docs / build (push) Waiting to run
deploy-docs / Deploy (push) Blocked by required conditions
publish-npm / publish (push) Waiting to run
unit-testing / Run Luau Tests (push) Waiting to run
2025-03-30 22:49:11 +02:00
Ukendio
7bcd6bd220 Update docs 2025-03-30 22:29:43 +02:00
Ukendio
2b90fabec5 Add tests for addons 2025-03-30 22:14:22 +02:00
Ukendio
9c68218d5d Update changelog 2025-03-30 21:47:25 +02:00
Ukendio
cf88c259f8 Replace OnSet hook with OnChange 2025-03-30 21:31:18 +02:00
Ukendio
a466ab151b Move coverage under docs 2025-03-30 18:55:14 +02:00
Ukendio
3050ea1560 Add coverage to Nav 2025-03-30 18:42:16 +02:00
Ukendio
5a1424ee48 Merge branch 'main' of https://github.com/Ukendio/jecs 2025-03-30 18:41:59 +02:00
Ukendio
0455a55625 Remove duplicate .github folder 2025-03-30 18:38:14 +02:00
EncodedVenom
27b58e9745
Update jecs.md
Makes the sentence clearer
2025-03-30 12:24:24 -04:00
lolmanurfunny
0046dcdf1a
find_archetype_with shouldn't clone types unconditionally (#210)
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-03-29 02:22:15 +01:00
Ukendio
9800355131 Styling on coverage reports
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-03-28 02:29:55 +01:00
Ukendio
dd9db448e3 New coverage reports 2025-03-28 01:53:19 +01:00
Ukendio
34777b51c4 Fix typos 2025-03-28 01:52:33 +01:00
Ukendio
4eb15bbb55 Update removal functions to handle more variants 2025-03-27 21:49:44 +01:00
Ukendio
b81bd6eea8 Make tests lazily evaluated 2025-03-27 17:37:36 +01:00
Ukendio
e6039caaaf Revert mirror back to pinned version
Some checks are pending
analysis / Run Luau Analyze (push) Waiting to run
deploy-docs / build (push) Waiting to run
deploy-docs / Deploy (push) Blocked by required conditions
publish-npm / publish (push) Waiting to run
unit-testing / Run Luau Tests (push) Waiting to run
2025-03-27 06:33:41 +01:00
76 changed files with 8278 additions and 16291 deletions

View file

@ -15,7 +15,7 @@ jobs:
- name: Install Luau
uses: encodedvenom/install-luau@v4.3
with:
version: "latest"
version: "0.667"
verbose: "true"
- name: Run Unit Tests

View file

@ -4,6 +4,7 @@
"testkit": "tools/testkit",
"mirror": "mirror",
"tools": "tools",
"addons": "addons"
},
"languageMode": "strict"
}

View file

@ -11,29 +11,48 @@ The format is based on [Keep a Changelog][kac], and this project adheres to
## [Unreleased]
- `[world]`:
- 16% faster `world:get`
- `world:has` no longer typechecks components after the 8th one.
- `[typescript]`
- Changed `world:clear` to also look through the component record for the cleared `ID`
- Removes the cleared ID from every entity that has it
- Changed entity ID layouts by putting the index in the lower bits, which should make every world function 1-5 nanoseconds faster
- Fixed `world:delete` not removing every pair with an unalive target
- Specifically happened when you had at least two pairs of different relations with multiple targets each
- `[hooks]`:
- Replaced `OnSet` with `OnChange`
- The former was used to detect emplace/move actions. Now the behaviour for `OnChange` is that it will run only when the value has changed
- Changed `OnAdd` to specifically run after the data has been set for non-zero-sized components. Also returns the value that the component was set to
- This should allow a more lenient window for modifying data
- Changed `OnRemove` to lazily lookup which archetype the entity will move to
- Can now have interior structural changes within `OnRemove` hooks
- Optimized `world:has` for both single component and multiple component presence.
- This comes at the cost that it cannot check the component presence for more than 4 components at a time. If this is important, consider calling to this function multiple times.
- Fixed Entity type to default to `undefined | unknown` instead of just `undefined`
## [0.5.0] - 2024-12-26
- `[world]`:
- Fixed `world:target` not giving adjacent pairs
- Added `world:each` to find entities with a specific Tag
- Added `world:children` to find children of entity
- `[query]`:
- Fixed bug where `world:clear` did not invoke `jecs.OnRemove` hooks
- Changed `query.__iter` to drain on iteration
- It will initialize once wherever you left iteration off at last time
- Changed `query:iter` to restart the iterator
- Removed `query:drain` and `query:next`
- If you want to get individual results outside of a for-loop, you need to call `query:iter` to initialize the iterator and then call the iterator function manually
```lua
local it = world:query(A, B, C):iter()
local entity, a, b, c = it()
entity, a, b, c = it() -- get next results
```
- `[world`
- Fixed a bug with `world:clear` not invoking `jecs.OnRemove` hooks
- `[typescript]`:
- Changed pair to accept generics
- Improved handling of Tags
- Added `query:cached`
- Adds query cache that updates itself when an archetype matching the query gets created or deleted.
- `[luau]`:
- Changed how entities' types are inferred with user-defined type functions
- Changed `Pair<First, Second>` to return `Second` if `First` is a `Tag`; otherwise, returns `First`.
## [0.4.0] - 2024-11-17
- `[world]`:
- Added recycling to `world:entity`
- If you see much larger entity ids, that is because its generation has been incremented
- `[query]`:
- Removed `query:drain`
- The default behaviour is simply to drain the iterator
- Removed `query:next`
- Just call the iterator function returned by `query:iter` directly if you want to get the next results
- Removed `query:replace`
- `[luau]`:
- Fixed `query:archetypes` not taking `self`
- Changed so that the `jecs.Pair` type now returns the first element's type so you won't need to typecast anymore.
## [0.3.2] - 2024-10-01

161
addons/observers.luau Normal file
View file

@ -0,0 +1,161 @@
local jecs = require("@jecs")
type Observer<T...> = {
callback: (jecs.Entity) -> (),
query: jecs.Query<T...>,
}
export type PatchedWorld = jecs.World & {
added: (PatchedWorld, jecs.Id, (e: jecs.Entity, id: jecs.Id, value: any) -> ()) -> (),
removed: (PatchedWorld, jecs.Id, (e: jecs.Entity, id: jecs.Id) -> ()) -> (),
changed: (PatchedWorld, jecs.Id, (e: jecs.Entity, id: jecs.Id) -> ()) -> (),
observer: (PatchedWorld, Observer<any>) -> (),
monitor: (PatchedWorld, Observer<any>) -> (),
}
local function observers_new(world, description)
local query = description.query
local callback = description.callback
local terms = query.filter_with :: { jecs.Id }
if not terms then
local ids = query.ids
query.filter_with = ids
terms = ids
end
local entity_index = world.entity_index :: any
local function emplaced(entity: jecs.Entity)
local r = jecs.entity_index_try_get_fast(
entity_index, entity :: any)
if not r then
return
end
local archetype = r.archetype
if jecs.query_match(query, archetype) then
callback(entity)
end
end
for _, term in terms do
world:added(term, emplaced)
world:changed(term, emplaced)
end
end
local function monitors_new(world, description)
local query = description.query
local callback = description.callback
local terms = query.filter_with :: { jecs.Id }
if not terms then
local ids = query.ids
query.filter_with = ids
terms = ids
end
local entity_index = world.entity_index :: any
local function emplaced(entity: jecs.Entity)
local r = jecs.entity_index_try_get_fast(
entity_index, entity :: any)
if not r then
return
end
local archetype = r.archetype
if jecs.query_match(query, archetype) then
callback(entity, jecs.OnAdd)
end
end
local function removed(entity: jecs.Entity, component: jecs.Id)
local r = jecs.entity_index_try_get_fast(
entity_index, entity :: any)
if not r then
return
end
local archetype = r.archetype
if jecs.query_match(query, archetype) then
callback(entity, jecs.OnRemove)
end
end
for _, term in terms do
world:added(term, emplaced)
world:removed(term, removed)
end
end
local function observers_add(world: jecs.World & { [string]: any }): PatchedWorld
local signals = {
added = {},
emplaced = {},
removed = {}
}
world.added = function(_, component, fn)
local listeners = signals.added[component]
local component_index = world.component_index :: jecs.ComponentIndex
assert(component_index[component] == nil, "You cannot use hooks on components you intend to use this signal with")
if not listeners then
listeners = {}
signals.added[component] = listeners
local function on_add(entity: number, id: number, value: any)
for _, listener in listeners :: any do
listener(entity, id, value)
end
end
world:set(component, jecs.OnAdd, on_add) end
table.insert(listeners, fn)
end
world.changed = function(_, component, fn)
local listeners = signals.emplaced[component]
local component_index = world.component_index :: jecs.ComponentIndex
assert(component_index[component] == nil, "You cannot use hooks on components you intend to use this signal with")
if not listeners then
listeners = {}
signals.emplaced[component] = listeners
local function on_change(entity: number, id: number, value: any)
for _, listener in listeners :: any do
listener(entity, id, value)
end
end
world:set(component, jecs.OnChange, on_change)
end
table.insert(listeners, fn)
end
world.removed = function(_, component, fn)
local listeners = signals.removed[component]
local component_index = world.component_index :: jecs.ComponentIndex
assert(component_index[component] == nil, "You cannot use hooks on components you intend to use this signal with")
if not listeners then
listeners = {}
signals.removed[component] = listeners
local function on_remove(entity: number, id: number, value: any)
for _, listener in listeners :: any do
listener(entity, id, value)
end
end
world:set(component, jecs.OnRemove, on_remove)
end
table.insert(listeners, fn)
end
world.signals = signals
world.observer = observers_new
world.monitor = monitors_new
return world :: PatchedWorld
end
return observers_add

View file

@ -1,22 +0,0 @@
---
name: Bug report
about: File a bug report for any behavior that you believe is unintentional or problematic
title: "[BUG]"
labels: bug
assignees: ''
---
## Describe the bug
Put a clear and concise description of what the bug is. This should be short and to the point, not to exceed more than a paragraph. Put the details inside your reproduction steps.
## Reproduction
Make an easy-to-follow guide on how to reproduce it. Does it happen all the time? Will specific features affect reproduction? All these questions should be answered for a good issue.
This is a good place to put rbxl files or scripts that help explain your reproduction steps.
## Expected Behavior
What you expect to happen
## Actual Behavior
What actually happens

View file

@ -1,14 +0,0 @@
---
name: Documentation
about: Open an issue to add, change, or otherwise modify any part of the documentation.
title: "[DOCS]"
labels: documentation
assignees: ''
---
## Which Sections Does This Issue Cover?
[Put sections (e.g. Query Concepts), page links, etc as necessary]
## What Needs To Change?
What specifically needs to change and what suggestions do you have to change it?

View file

@ -1,27 +0,0 @@
---
name: Feature Request
about: File a feature request for something you believe should be added to Jecs
title: "[FEATURE]"
labels: enhancement
assignees: ''
---
## Describe your Feature
You should explain your feature here, and the motivation for why you want it.
## Implementation
Explain how you would implement your feature here. Provide relevant API examples and such here (if applicable).
## Alternatives
What other alternative implementations or otherwise relevant information is important to why you decided to go with this specific implementation?
## Considerations
Some questions that need to be answered include the following:
- Will old code break in response to this feature?
- What are the performance impacts with this feature (if any)?
- How is it useful to include?

View file

@ -1,15 +0,0 @@
## Brief Description of your Changes.
Describe what you did here. Additionally, you should link any relevant issues within this section. If there is no corresponding issue, you should include relevant information (repro steps, motivation, etc) here.
## Impact of your Changes
What implications will this have on the project? Will there be altered behavior or performance with this change?
## Tests Performed
What have you done to ensure this change has the least possible impact on the project?
## Additional Comments
Anything else you feel is relevant.

View file

@ -1,19 +0,0 @@
name: analysis
on: [push, pull_request, workflow_dispatch]
jobs:
run:
name: Run Luau Analyze
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Install Luau
uses: encodedvenom/install-luau@v2.1
- name: Analyze
run: |
output=$(luau-analyze src || true) # Suppress errors for now.

View file

@ -1,11 +0,0 @@
---
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: npm
directory: "/"
schedule:
interval: "daily"

View file

@ -1,64 +0,0 @@
# Sample workflow for building and deploying a VitePress site to GitHub Pages
#
name: deploy-docs
on:
# Runs on pushes targeting the `main` branch. Change this to `master` if you're
# using the `master` branch as the default branch.
push:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: pages
cancel-in-progress: false
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Not needed if lastUpdated is not enabled
# - uses: pnpm/action-setup@v3 # Uncomment this if you're using pnpm
# - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm # or pnpm / yarn
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: npm ci # or pnpm install / yarn install / bun install
- name: Build with VitePress
run: npm run docs:build # or pnpm docs:build / yarn docs:build / bun run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

View file

@ -1,17 +0,0 @@
name: publish-npm
on:
push:
branches: [main]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: "20"
- uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_AUTH_TOKEN }}

View file

@ -1,71 +0,0 @@
name: release
on:
push:
tags: ["v*"]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Install Rokit
uses: CompeyDev/setup-rokit@v0.1.2
- name: Install Dependencies
run: wally install
- name: Build
run: rojo build --output build.rbxm default.project.json
- name: Upload Build Artifact
uses: actions/upload-artifact@v3
with:
name: build
path: build.rbxm
release:
name: Release
needs: [build]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Download Jecs Build
uses: actions/download-artifact@v3
with:
name: build
path: build
- name: Rename Build
run: mv build/build.rbxm jecs.rbxm
- name: Create Release
uses: softprops/action-gh-release@v1
with:
name: Jecs ${{ github.ref_name }}
files: |
jecs.rbxm
publish:
name: Publish
needs: [release]
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Install Rokit
uses: CompeyDev/setup-rokit@v0.1.2
- name: Wally Login
run: wally login --token ${{ secrets.WALLY_AUTH_TOKEN }}
- name: Publish
run: wally publish

View file

@ -1,31 +0,0 @@
name: unit-testing
on: [push, pull_request, workflow_dispatch]
jobs:
run:
name: Run Luau Tests
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Install Luau
uses: encodedvenom/install-luau@v4.3
with:
version: "latest"
verbose: "true"
- name: Run Unit Tests
id: run_tests
run: |
output=$(luau test/tests.luau)
echo "$output"
if [[ "$output" == *"0 fails"* ]]; then
echo "Unit Tests Passed"
else
echo "Error: One or More Unit Tests Failed."
exit 1
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

69
coverage/ansi.luau.html vendored Normal file
View file

@ -0,0 +1,69 @@
<html><head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
<style>
body { font-family: monospace; text-align: center; }
#funcTable table { margin: 0 auto; width: auto; max-width: 300px; font-size: 14px; border-collapse: collapse; }
#funcTable th, #funcTable td { padding: 2px 6px; text-align: left; white-space: nowrap; }
#funcTable th { background-color: #ddd; }
#funcTable td:nth-child(2) { text-align: right; min-width: 50px; }
.zero-hits { background-color: #fcc; font-weight: bold; color: red; }
.nonzero-hits { color: green; font-weight: bold; }
.low-hits { background-color: #ffe6b3; }
.high-hits { background-color: #cfc; }
.source-code-table { margin-left: 10px; }th, td { padding: 0px; font-size: 12px; }
table.table { font-size: 14px; border-collapse: collapse; }
table.table th, table.table td { padding: 1px; font-size: 12px; line-height: 1.2; }
table.table tr { height: auto; }
</style></head><body>
<h1 class="text-center">ansi.luau Coverage</h1>
<h2>Total Execution Hits: 1</h2>
<h2>Function Coverage Overview: 11.11%</h2>
<button class="btn btn-primary mb-2" type="button" data-bs-toggle="collapse" data-bs-target="#funcTable">Toggle Function Coverage</button>
<div class="collapse show" id="funcTable">
<h2>Function Coverage:</h2><table class="table table-bordered"><thead><tr><th>Function</th><th>Hits</th></tr></thead><tbody>
<tr><td style="padding: 1px; min-width: 18ch;"><main></td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">white_underline:2</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">white:6</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">green:10</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">red:14</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">yellow:18</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">red_highlight:22</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">green_highlight:26</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 18ch;">gray:30</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
</tbody></table></div>
<h2>Source Code:</h2><table class="table table-bordered source-code-table "><thead><tr><th>Line</th><th>Hits</th><th>Code</th></tr></thead><tbody>
<tr><td>1</td><td>1</td><td><span class=high-hits>return {</span></td></tr>
<tr><td>2</td><td>1</td><td><span class=high-hits>white_underline = function(s: any)</span></td></tr>
<tr><td>3</td><td>0</td><td><span class=zero-hits>return `\27[1;4m{s}\27[0m`</span></td></tr>
<tr><td>4</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>5</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>6</td><td>1</td><td><span class=high-hits>white = function(s: any)</span></td></tr>
<tr><td>7</td><td>0</td><td><span class=zero-hits>return `\27[37;1m{s}\27[0m`</span></td></tr>
<tr><td>8</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>9</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>10</td><td>1</td><td><span class=high-hits>green = function(s: any)</span></td></tr>
<tr><td>11</td><td>0</td><td><span class=zero-hits>return `\27[32;1m{s}\27[0m`</span></td></tr>
<tr><td>12</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>13</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>14</td><td>1</td><td><span class=high-hits>red = function(s: any)</span></td></tr>
<tr><td>15</td><td>0</td><td><span class=zero-hits>return `\27[31;1m{s}\27[0m`</span></td></tr>
<tr><td>16</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>17</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>18</td><td>1</td><td><span class=high-hits>yellow = function(s: any)</span></td></tr>
<tr><td>19</td><td>0</td><td><span class=zero-hits>return `\27[33;1m{s}\27[0m`</span></td></tr>
<tr><td>20</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>21</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>22</td><td>1</td><td><span class=high-hits>red_highlight = function(s: any)</span></td></tr>
<tr><td>23</td><td>0</td><td><span class=zero-hits>return `\27[41;1;30m{s}\27[0m`</span></td></tr>
<tr><td>24</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>25</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>26</td><td>1</td><td><span class=high-hits>green_highlight = function(s: any)</span></td></tr>
<tr><td>27</td><td>0</td><td><span class=zero-hits>return `\27[42;1;30m{s}\27[0m`</span></td></tr>
<tr><td>28</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>29</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>30</td><td>1</td><td><span class=high-hits>gray = function(s: any)</span></td></tr>
<tr><td>31</td><td>0</td><td><span class=zero-hits>return `\27[30;1m{s}\27[0m`</span></td></tr>
<tr><td>32</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>33</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
</tbody></table></body></html>

View file

@ -1 +0,0 @@
genhtml coverage.out --output-directory=coverage --synthesize-missing --ignore-errors source

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

74
coverage/entity_visualiser.luau.html vendored Normal file
View file

@ -0,0 +1,74 @@
<html><head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
<style>
body { font-family: monospace; text-align: center; }
#funcTable table { margin: 0 auto; width: auto; max-width: 300px; font-size: 14px; border-collapse: collapse; }
#funcTable th, #funcTable td { padding: 2px 6px; text-align: left; white-space: nowrap; }
#funcTable th { background-color: #ddd; }
#funcTable td:nth-child(2) { text-align: right; min-width: 50px; }
.zero-hits { background-color: #fcc; font-weight: bold; color: red; }
.nonzero-hits { color: green; font-weight: bold; }
.low-hits { background-color: #ffe6b3; }
.high-hits { background-color: #cfc; }
.source-code-table { margin-left: 10px; }th, td { padding: 0px; font-size: 12px; }
table.table { font-size: 14px; border-collapse: collapse; }
table.table th, table.table td { padding: 1px; font-size: 12px; line-height: 1.2; }
table.table tr { height: auto; }
</style></head><body>
<h1 class="text-center">entity_visualiser.luau Coverage</h1>
<h2>Total Execution Hits: 1</h2>
<h2>Function Coverage Overview: 25.00%</h2>
<button class="btn btn-primary mb-2" type="button" data-bs-toggle="collapse" data-bs-target="#funcTable">Toggle Function Coverage</button>
<div class="collapse show" id="funcTable">
<h2>Function Coverage:</h2><table class="table table-bordered"><thead><tr><th>Function</th><th>Hits</th></tr></thead><tbody>
<tr><td style="padding: 1px; min-width: 13ch;"><main></td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 13ch;">pe:6</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 13ch;">name:11</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 13ch;">components:15</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
</tbody></table></div>
<h2>Source Code:</h2><table class="table table-bordered source-code-table "><thead><tr><th>Line</th><th>Hits</th><th>Code</th></tr></thead><tbody>
<tr><td>1</td><td>1</td><td><span class=high-hits>local jecs = require("@jecs")</span></td></tr>
<tr><td>2</td><td>1</td><td><span class=high-hits>local ECS_GENERATION = jecs.ECS_GENERATION</span></td></tr>
<tr><td>3</td><td>1</td><td><span class=high-hits>local ECS_ID = jecs.ECS_ID</span></td></tr>
<tr><td>4</td><td>1</td><td><span class=high-hits>local ansi = require("@tools/ansi")</span></td></tr>
<tr><td>5</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>6</td><td>1</td><td><span class=high-hits>local function pe(e: any)</span></td></tr>
<tr><td>7</td><td>0</td><td><span class=zero-hits>local gen = ECS_GENERATION(e)</span></td></tr>
<tr><td>8</td><td>0</td><td><span class=zero-hits>return ansi.green(`e{ECS_ID(e)}`) .. ansi.yellow(`v{gen}`)</span></td></tr>
<tr><td>9</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>10</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>11</td><td>1</td><td><span class=high-hits>local function name(world: jecs.World, id: any)</span></td></tr>
<tr><td>12</td><td>0</td><td><span class=zero-hits>return world:get(id, jecs.Name) or `${id}`</span></td></tr>
<tr><td>13</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>14</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>15</td><td>1</td><td><span class=high-hits>local function components(world: jecs.World, entity: any)</span></td></tr>
<tr><td>16</td><td>0</td><td><span class=zero-hits>local r = jecs.entity_index_try_get(world.entity_index, entity)</span></td></tr>
<tr><td>17</td><td>0</td><td><span class=zero-hits>if not r then</span></td></tr>
<tr><td>18</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>19</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>20</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>21</td><td>0</td><td><span class=zero-hits>local archetype = r.archetype</span></td></tr>
<tr><td>22</td><td>0</td><td><span class=zero-hits>local row = r.row</span></td></tr>
<tr><td>23</td><td>0</td><td><span class=zero-hits>print(`Entity {pe(entity)}`)</span></td></tr>
<tr><td>24</td><td>0</td><td><span class=zero-hits>print("-----------------------------------------------------")</span></td></tr>
<tr><td>25</td><td>0</td><td><span class=zero-hits>for i, column in archetype.columns do</span></td></tr>
<tr><td>26</td><td>0</td><td><span class=zero-hits>local component = archetype.types[i]</span></td></tr>
<tr><td>27</td><td>0</td><td><span class=zero-hits>local n</span></td></tr>
<tr><td>28</td><td>0</td><td><span class=zero-hits>if jecs.IS_PAIR(component) then</span></td></tr>
<tr><td>29</td><td>0</td><td><span class=zero-hits>n = `({name(world, jecs.pair_first(world, component))}, {name(world, jecs.pair_second(world, component))})`</span></td></tr>
<tr><td>30</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>31</td><td>0</td><td><span class=zero-hits>n = name(world, component)</span></td></tr>
<tr><td>32</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>33</td><td>0</td><td><span class=zero-hits>local data = column[row] or "TAG"</span></td></tr>
<tr><td>34</td><td>0</td><td><span class=zero-hits>print(`| {n} | {data} |`)</span></td></tr>
<tr><td>35</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>36</td><td>0</td><td><span class=zero-hits>print("-----------------------------------------------------")</span></td></tr>
<tr><td>37</td><td>0</td><td><span class=zero-hits>return true</span></td></tr>
<tr><td>38</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>39</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>40</td><td>1</td><td><span class=high-hits>return {</span></td></tr>
<tr><td>41</td><td>1</td><td><span class=high-hits>components = components,</span></td></tr>
<tr><td>42</td><td>1</td><td><span class=high-hits>prettify = pe,</span></td></tr>
<tr><td>43</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
</tbody></table></body></html>

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

View file

@ -1,129 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out</title>
<link rel="stylesheet" type="text/css" href="gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue">top level</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryMed">80.3&nbsp;%</td>
<td class="headerCovTableEntry">3222</td>
<td class="headerCovTableEntry">2587</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">65.3&nbsp;%</td>
<td class="headerCovTableEntry">219</td>
<td class="headerCovTableEntry">143</td>
</tr>
<tr><td><img src="glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Directory <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><img src="glass.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/index.html">jecs</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="ruby.png" width=72 height=10 alt="71.7%"><img src="snow.png" width=28 height=10 alt="71.7%"></td></tr></table>
</td>
<td class="coverPerLo">71.7&nbsp;%</td>
<td class="coverNumDflt">1487</td>
<td class="coverNumDflt">1066</td>
<td class="coverPerLo">53.6&nbsp;%</td>
<td class="coverNumDflt">97</td>
<td class="coverNumDflt">52</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/tools/index.html">jecs/tools</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="ruby.png" width=63 height=10 alt="63.0%"><img src="snow.png" width=37 height=10 alt="63.0%"></td></tr></table>
</td>
<td class="coverPerLo">63.0&nbsp;%</td>
<td class="coverNumDflt">508</td>
<td class="coverNumDflt">320</td>
<td class="coverPerLo">63.6&nbsp;%</td>
<td class="coverNumDflt">55</td>
<td class="coverNumDflt">35</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/test/test/index.html">jecs/test/test</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="emerald.png" width=98 height=10 alt="97.9%"><img src="snow.png" width=2 height=10 alt="97.9%"></td></tr></table>
</td>
<td class="coverPerHi">97.9&nbsp;%</td>
<td class="coverNumDflt">1227</td>
<td class="coverNumDflt">1201</td>
<td class="coverPerMed">83.6&nbsp;%</td>
<td class="coverNumDflt">67</td>
<td class="coverNumDflt">56</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,129 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out</title>
<link rel="stylesheet" type="text/css" href="gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue">top level</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryMed">80.3&nbsp;%</td>
<td class="headerCovTableEntry">3222</td>
<td class="headerCovTableEntry">2587</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">65.3&nbsp;%</td>
<td class="headerCovTableEntry">219</td>
<td class="headerCovTableEntry">143</td>
</tr>
<tr><td><img src="glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Directory <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><img src="glass.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/tools/index.html">jecs/tools</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="ruby.png" width=63 height=10 alt="63.0%"><img src="snow.png" width=37 height=10 alt="63.0%"></td></tr></table>
</td>
<td class="coverPerLo">63.0&nbsp;%</td>
<td class="coverNumDflt">508</td>
<td class="coverNumDflt">320</td>
<td class="coverPerLo">63.6&nbsp;%</td>
<td class="coverNumDflt">55</td>
<td class="coverNumDflt">35</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/index.html">jecs</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="ruby.png" width=72 height=10 alt="71.7%"><img src="snow.png" width=28 height=10 alt="71.7%"></td></tr></table>
</td>
<td class="coverPerLo">71.7&nbsp;%</td>
<td class="coverNumDflt">1487</td>
<td class="coverNumDflt">1066</td>
<td class="coverPerLo">53.6&nbsp;%</td>
<td class="coverNumDflt">97</td>
<td class="coverNumDflt">52</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/test/test/index.html">jecs/test/test</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="emerald.png" width=98 height=10 alt="97.9%"><img src="snow.png" width=2 height=10 alt="97.9%"></td></tr></table>
</td>
<td class="coverPerHi">97.9&nbsp;%</td>
<td class="coverNumDflt">1227</td>
<td class="coverNumDflt">1201</td>
<td class="coverPerMed">83.6&nbsp;%</td>
<td class="coverNumDflt">67</td>
<td class="coverNumDflt">56</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

141
coverage/index.html vendored
View file

@ -1,129 +1,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out</title>
<link rel="stylesheet" type="text/css" href="gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue">top level</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryMed">80.3&nbsp;%</td>
<td class="headerCovTableEntry">3222</td>
<td class="headerCovTableEntry">2587</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">65.3&nbsp;%</td>
<td class="headerCovTableEntry">219</td>
<td class="headerCovTableEntry">143</td>
</tr>
<tr><td><img src="glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Directory <span title="Click to sort table by file name" class="tableHeadSort"><img src="glass.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/index.html">jecs</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="ruby.png" width=72 height=10 alt="71.7%"><img src="snow.png" width=28 height=10 alt="71.7%"></td></tr></table>
</td>
<td class="coverPerLo">71.7&nbsp;%</td>
<td class="coverNumDflt">1487</td>
<td class="coverNumDflt">1066</td>
<td class="coverPerLo">53.6&nbsp;%</td>
<td class="coverNumDflt">97</td>
<td class="coverNumDflt">52</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/test/test/index.html">jecs/test/test</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="emerald.png" width=98 height=10 alt="97.9%"><img src="snow.png" width=2 height=10 alt="97.9%"></td></tr></table>
</td>
<td class="coverPerHi">97.9&nbsp;%</td>
<td class="coverNumDflt">1227</td>
<td class="coverNumDflt">1201</td>
<td class="coverPerMed">83.6&nbsp;%</td>
<td class="coverNumDflt">67</td>
<td class="coverNumDflt">56</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs/tools/index.html">jecs/tools</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="ruby.png" width=63 height=10 alt="63.0%"><img src="snow.png" width=37 height=10 alt="63.0%"></td></tr></table>
</td>
<td class="coverPerLo">63.0&nbsp;%</td>
<td class="coverNumDflt">508</td>
<td class="coverNumDflt">320</td>
<td class="coverPerLo">63.6&nbsp;%</td>
<td class="coverNumDflt">55</td>
<td class="coverNumDflt">35</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>
<html><head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
</head><body>
<h1 class="text-center">Coverage Report</h1>
<table class="table table-striped table-bordered"><thead><tr><th>File</th><th>Total Hits</th><th>Functions</th></tr></thead><tbody>
<tr><td><a href="tests.luau.html">tests.luau</a></td><td>100</td><td>67</td></tr>
<tr><td><a href="jecs.luau.html">jecs.luau</a></td><td>1006447</td><td>97</td></tr>
<tr><td><a href="testkit.luau.html">testkit.luau</a></td><td>1826</td><td>31</td></tr>
<tr><td><a href="lifetime_tracker.luau.html">lifetime_tracker.luau</a></td><td>1</td><td>11</td></tr>
<tr><td><a href="entity_visualiser.luau.html">entity_visualiser.luau</a></td><td>1</td><td>4</td></tr>
<tr><td><a href="ansi.luau.html">ansi.luau</a></td><td>1</td><td>9</td></tr>
</tbody></table></body></html>

2798
coverage/jecs.luau.html vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,105 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs</title>
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - jecs</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">71.7&nbsp;%</td>
<td class="headerCovTableEntry">1487</td>
<td class="headerCovTableEntry">1066</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">53.6&nbsp;%</td>
<td class="headerCovTableEntry">97</td>
<td class="headerCovTableEntry">52</td>
</tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="../updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="../updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs.luau .gcov.html">jecs.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../ruby.png" width=72 height=10 alt="71.7%"><img src="../snow.png" width=28 height=10 alt="71.7%"></td></tr></table>
</td>
<td class="coverPerLo">71.7&nbsp;%</td>
<td class="coverNumDflt">1487</td>
<td class="coverNumDflt">1066</td>
<td class="coverPerLo">53.6&nbsp;%</td>
<td class="coverNumDflt">97</td>
<td class="coverNumDflt">52</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,105 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs</title>
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - jecs</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">71.7&nbsp;%</td>
<td class="headerCovTableEntry">1487</td>
<td class="headerCovTableEntry">1066</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">53.6&nbsp;%</td>
<td class="headerCovTableEntry">97</td>
<td class="headerCovTableEntry">52</td>
</tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="../updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="../updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs.luau .gcov.html">jecs.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../ruby.png" width=72 height=10 alt="71.7%"><img src="../snow.png" width=28 height=10 alt="71.7%"></td></tr></table>
</td>
<td class="coverPerLo">71.7&nbsp;%</td>
<td class="coverNumDflt">1487</td>
<td class="coverNumDflt">1066</td>
<td class="coverPerLo">53.6&nbsp;%</td>
<td class="coverNumDflt">97</td>
<td class="coverNumDflt">52</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,105 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs</title>
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - jecs</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">71.7&nbsp;%</td>
<td class="headerCovTableEntry">1487</td>
<td class="headerCovTableEntry">1066</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">53.6&nbsp;%</td>
<td class="headerCovTableEntry">97</td>
<td class="headerCovTableEntry">52</td>
</tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="../updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="../updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="jecs.luau .gcov.html">jecs.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../ruby.png" width=72 height=10 alt="71.7%"><img src="../snow.png" width=28 height=10 alt="71.7%"></td></tr></table>
</td>
<td class="coverPerLo">71.7&nbsp;%</td>
<td class="coverNumDflt">1487</td>
<td class="coverNumDflt">1066</td>
<td class="coverPerLo">53.6&nbsp;%</td>
<td class="coverNumDflt">97</td>
<td class="coverNumDflt">52</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,754 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/jecs.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">jecs</a> - jecs.luau <span style="font-size: 80%;"> (<a href="jecs.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">71.7&nbsp;%</td>
<td class="headerCovTableEntry">1487</td>
<td class="headerCovTableEntry">1066</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">53.6&nbsp;%</td>
<td class="headerCovTableEntry">97</td>
<td class="headerCovTableEntry">52</td>
</tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="jecs.luau .func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L142">ECS_COMBINE:144 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L174">ECS_ENTITY_T_HI:176 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L539">ECS_ID_IS_WILDCARD:541 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L185">ECS_PAIR_FIRST:187 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L189">ECS_PAIR_SECOND:191 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1324">NOOP:1326 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L388">archetype_append:390 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L608">archetype_append_to_records:610 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1084">archetype_disconnect_edge:1086 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L706">archetype_ensure:708 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L778">archetype_ensure_edge:780 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1016">archetype_fast_delete:1018 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1008">archetype_fast_delete_last:1010 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L767">archetype_init_edge:769 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1095">archetype_remove_edge:1097 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L832">create_edge_for_add:834 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L843">create_edge_for_remove:845 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L242">ecs_get_alive:244 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L234">entity_index_get_alive:236 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L230">entity_index_is_alive:232 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L265">entity_index_new_id:267 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L220">entity_index_try_get_fast:222 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L409">entity_move:411 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L427">fetch:429 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L732">find_archetype_with:734 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L720">find_insert:722 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L319">find_observers:321 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L423">hash:425 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L792">init_edge_for_add:794 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L809">init_edge_for_remove:811 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L398">new_entity:400 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L296">query_match:298 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L469">world_has_one_inline:471 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1456">world_query_iter_next:1458 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1513">world_query_iter_next:1515 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1543">world_query_iter_next:1545 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1574">world_query_iter_next:1576 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1606">world_query_iter_next:1608 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1930">world_query_iter_next:1932 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1958">world_query_iter_next:1960 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1987">world_query_iter_next:1989 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2017">world_query_iter_next:2019 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2048">world_query_iter_next:2050 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2080">world_query_iter_next:2082 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2114">world_query_iter_next:2116 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L151">ECS_GENERATION_INC:153 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L854">archetype_traverse_add:856 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L870">archetype_traverse_remove:872 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1804">on_delete_callback:1806 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1712">query_with:1714 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1169">world_cleanup:1171 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L702">world_parent:704 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1133">archetype_destroy:1135 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2265">world_children:2267 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2231">world_each:2233 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1484">world_query_iter_next:1486 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1640">world_query_iter_next:1642 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L206">entity_index_try_get:208 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1800">on_create_callback:1802 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1064">world_clear:1066 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1746">query_archetypes:1748 </a></td>
<td class="coverFnHi">5</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1750">query_cached:1752 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1682">query_without:1684 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1429">world_query_iter_next:1431 </a></td>
<td class="coverFnHi">7</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1903">world_query_iter_next:1905 </a></td>
<td class="coverFnHi">8</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1817">cached_query_iter:1819 </a></td>
<td class="coverFnHi">11</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1877">world_query_iter_next:1879 </a></td>
<td class="coverFnHi">11</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L147">ECS_IS_PAIR:149 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L286">ecs_pair_first:288 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L750">find_archetype_without:752 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L291">ecs_pair_second:293 </a></td>
<td class="coverFnHi">13</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L166">ECS_ENTITY_T_LO:168 </a></td>
<td class="coverFnHi">14</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L170">ECS_GENERATION:172 </a></td>
<td class="coverFnHi">15</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1100">archetype_clear_edges:1102 </a></td>
<td class="coverFnHi">17</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L193">entity_index_try_get_any:195 </a></td>
<td class="coverFnHi">19</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1674">query_iter:1676 </a></td>
<td class="coverFnHi">20</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2248">&lt;anonymous&gt;:2250 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1337">query_iter_init:1339 </a></td>
<td class="coverFnHi">26</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2171">world_query:2173 </a></td>
<td class="coverFnHi">33</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1025">archetype_delete:1027 </a></td>
<td class="coverFnHi">57</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L485">world_has:487 </a></td>
<td class="coverFnHi">59</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2315">world_new:2317 </a></td>
<td class="coverFnHi">72</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L971">world_component:973 </a></td>
<td class="coverFnHi">108</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1320">world_contains:1322 </a></td>
<td class="coverFnHi">137</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L178">ECS_PAIR:180 </a></td>
<td class="coverFnHi">166</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L983">world_remove:985 </a></td>
<td class="coverFnHi">281</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1403">world_query_iter_next:1405 </a></td>
<td class="coverFnHi">556</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L545">id_record_ensure:547 </a></td>
<td class="coverFnHi">674</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L438">world_get:440 </a></td>
<td class="coverFnHi">718</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L633">archetype_create:635 </a></td>
<td class="coverFnHi">936</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L507">world_target:509 </a></td>
<td class="coverFnHi">1378</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L328">archetype_move:330 </a></td>
<td class="coverFnHi">1778</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L919">world_set:921 </a></td>
<td class="coverFnHi">2739</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L887">world_add:889 </a></td>
<td class="coverFnHi">19044</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1190">world_delete:1192 </a></td>
<td class="coverFnHi">65536</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L698">world_entity:700 </a></td>
<td class="coverFnHi">66836</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,754 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/jecs.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">jecs</a> - jecs.luau <span style="font-size: 80%;"> (<a href="jecs.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">71.7&nbsp;%</td>
<td class="headerCovTableEntry">1487</td>
<td class="headerCovTableEntry">1066</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">53.6&nbsp;%</td>
<td class="headerCovTableEntry">97</td>
<td class="headerCovTableEntry">52</td>
</tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="jecs.luau .func-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2248">&lt;anonymous&gt;:2250 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L142">ECS_COMBINE:144 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L174">ECS_ENTITY_T_HI:176 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L166">ECS_ENTITY_T_LO:168 </a></td>
<td class="coverFnHi">14</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L170">ECS_GENERATION:172 </a></td>
<td class="coverFnHi">15</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L151">ECS_GENERATION_INC:153 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L539">ECS_ID_IS_WILDCARD:541 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L147">ECS_IS_PAIR:149 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L178">ECS_PAIR:180 </a></td>
<td class="coverFnHi">166</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L185">ECS_PAIR_FIRST:187 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L189">ECS_PAIR_SECOND:191 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1324">NOOP:1326 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L388">archetype_append:390 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L608">archetype_append_to_records:610 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1100">archetype_clear_edges:1102 </a></td>
<td class="coverFnHi">17</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L633">archetype_create:635 </a></td>
<td class="coverFnHi">936</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1025">archetype_delete:1027 </a></td>
<td class="coverFnHi">57</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1133">archetype_destroy:1135 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1084">archetype_disconnect_edge:1086 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L706">archetype_ensure:708 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L778">archetype_ensure_edge:780 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1016">archetype_fast_delete:1018 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1008">archetype_fast_delete_last:1010 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L767">archetype_init_edge:769 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L328">archetype_move:330 </a></td>
<td class="coverFnHi">1778</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1095">archetype_remove_edge:1097 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L854">archetype_traverse_add:856 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L870">archetype_traverse_remove:872 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1817">cached_query_iter:1819 </a></td>
<td class="coverFnHi">11</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L832">create_edge_for_add:834 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L843">create_edge_for_remove:845 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L242">ecs_get_alive:244 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L286">ecs_pair_first:288 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L291">ecs_pair_second:293 </a></td>
<td class="coverFnHi">13</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L234">entity_index_get_alive:236 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L230">entity_index_is_alive:232 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L265">entity_index_new_id:267 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L206">entity_index_try_get:208 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L193">entity_index_try_get_any:195 </a></td>
<td class="coverFnHi">19</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L220">entity_index_try_get_fast:222 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L409">entity_move:411 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L427">fetch:429 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L732">find_archetype_with:734 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L750">find_archetype_without:752 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L720">find_insert:722 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L319">find_observers:321 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L423">hash:425 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L545">id_record_ensure:547 </a></td>
<td class="coverFnHi">674</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L792">init_edge_for_add:794 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L809">init_edge_for_remove:811 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L398">new_entity:400 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1800">on_create_callback:1802 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1804">on_delete_callback:1806 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1746">query_archetypes:1748 </a></td>
<td class="coverFnHi">5</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1750">query_cached:1752 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1674">query_iter:1676 </a></td>
<td class="coverFnHi">20</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1337">query_iter_init:1339 </a></td>
<td class="coverFnHi">26</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L296">query_match:298 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1712">query_with:1714 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1682">query_without:1684 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L887">world_add:889 </a></td>
<td class="coverFnHi">19044</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2265">world_children:2267 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1169">world_cleanup:1171 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1064">world_clear:1066 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L971">world_component:973 </a></td>
<td class="coverFnHi">108</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1320">world_contains:1322 </a></td>
<td class="coverFnHi">137</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1190">world_delete:1192 </a></td>
<td class="coverFnHi">65536</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2231">world_each:2233 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L698">world_entity:700 </a></td>
<td class="coverFnHi">66836</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L438">world_get:440 </a></td>
<td class="coverFnHi">718</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L485">world_has:487 </a></td>
<td class="coverFnHi">59</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L469">world_has_one_inline:471 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2315">world_new:2317 </a></td>
<td class="coverFnHi">72</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L702">world_parent:704 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2171">world_query:2173 </a></td>
<td class="coverFnHi">33</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1403">world_query_iter_next:1405 </a></td>
<td class="coverFnHi">556</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1429">world_query_iter_next:1431 </a></td>
<td class="coverFnHi">7</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1456">world_query_iter_next:1458 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1484">world_query_iter_next:1486 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1513">world_query_iter_next:1515 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1543">world_query_iter_next:1545 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1574">world_query_iter_next:1576 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1606">world_query_iter_next:1608 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1640">world_query_iter_next:1642 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1877">world_query_iter_next:1879 </a></td>
<td class="coverFnHi">11</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1903">world_query_iter_next:1905 </a></td>
<td class="coverFnHi">8</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1930">world_query_iter_next:1932 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1958">world_query_iter_next:1960 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L1987">world_query_iter_next:1989 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2017">world_query_iter_next:2019 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2048">world_query_iter_next:2050 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2080">world_query_iter_next:2082 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L2114">world_query_iter_next:2116 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L983">world_remove:985 </a></td>
<td class="coverFnHi">281</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L919">world_set:921 </a></td>
<td class="coverFnHi">2739</td>
</tr>
<tr>
<td class="coverFn"><a href="jecs.luau .gcov.html#L507">world_target:509 </a></td>
<td class="coverFnHi">1378</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -1,105 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/test/test</title>
<link rel="stylesheet" type="text/css" href="../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - jecs/test/test</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.9&nbsp;%</td>
<td class="headerCovTableEntry">1227</td>
<td class="headerCovTableEntry">1201</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">83.6&nbsp;%</td>
<td class="headerCovTableEntry">67</td>
<td class="headerCovTableEntry">56</td>
</tr>
<tr><td><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><img src="../../../glass.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="tests.luau .gcov.html">tests.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=98 height=10 alt="97.9%"><img src="../../../snow.png" width=2 height=10 alt="97.9%"></td></tr></table>
</td>
<td class="coverPerHi">97.9&nbsp;%</td>
<td class="coverNumDflt">1227</td>
<td class="coverNumDflt">1201</td>
<td class="coverPerMed">83.6&nbsp;%</td>
<td class="coverNumDflt">67</td>
<td class="coverNumDflt">56</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,105 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/test/test</title>
<link rel="stylesheet" type="text/css" href="../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - jecs/test/test</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.9&nbsp;%</td>
<td class="headerCovTableEntry">1227</td>
<td class="headerCovTableEntry">1201</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">83.6&nbsp;%</td>
<td class="headerCovTableEntry">67</td>
<td class="headerCovTableEntry">56</td>
</tr>
<tr><td><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><img src="../../../glass.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="tests.luau .gcov.html">tests.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=98 height=10 alt="97.9%"><img src="../../../snow.png" width=2 height=10 alt="97.9%"></td></tr></table>
</td>
<td class="coverPerHi">97.9&nbsp;%</td>
<td class="coverNumDflt">1227</td>
<td class="coverNumDflt">1201</td>
<td class="coverPerMed">83.6&nbsp;%</td>
<td class="coverNumDflt">67</td>
<td class="coverNumDflt">56</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,107 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/test/test</title>
<link rel="stylesheet" type="text/css" href="../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - jecs/test/test</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.9&nbsp;%</td>
<td class="headerCovTableEntry">1227</td>
<td class="headerCovTableEntry">1201</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">83.6&nbsp;%</td>
<td class="headerCovTableEntry">67</td>
<td class="headerCovTableEntry">56</td>
</tr>
<tr><td><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><img src="../../../glass.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="tests.luau
.gcov.html">tests.luau
</a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=98 height=10 alt="97.9%"><img src="../../../snow.png" width=2 height=10 alt="97.9%"></td></tr></table>
</td>
<td class="coverPerHi">97.9&nbsp;%</td>
<td class="coverNumDflt">1227</td>
<td class="coverNumDflt">1201</td>
<td class="coverPerMed">83.6&nbsp;%</td>
<td class="coverNumDflt">67</td>
<td class="coverNumDflt">56</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,544 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/test/test/tests.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - <a href="index.html">jecs/test/test</a> - tests.luau <span style="font-size: 80%;"> (<a href="tests.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.9&nbsp;%</td>
<td class="headerCovTableEntry">1227</td>
<td class="headerCovTableEntry">1201</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">83.6&nbsp;%</td>
<td class="headerCovTableEntry">67</td>
<td class="headerCovTableEntry">56</td>
</tr>
<tr><td><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="tests.luau .func.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../../../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L56">gray:58 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L36">green:38 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L52">green_highlight:54 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L114">name:116 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L61">pe:63 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L66">pp:68 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L40">red:42 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L48">red_highlight:50 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L32">white:34 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L28">white_underline:30 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L44">yellow:46 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1028">&lt;anonymous&gt;:1030 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1056">&lt;anonymous&gt;:1058 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1093">&lt;anonymous&gt;:1095 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1158">&lt;anonymous&gt;:1160 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1189">&lt;anonymous&gt;:1191 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L118">&lt;anonymous&gt;:120 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1208">&lt;anonymous&gt;:1210 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1219">&lt;anonymous&gt;:1221 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1227">&lt;anonymous&gt;:1229 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1304">&lt;anonymous&gt;:1306 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1309">&lt;anonymous&gt;:1311 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1349">&lt;anonymous&gt;:1351 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L134">&lt;anonymous&gt;:136 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1370">&lt;anonymous&gt;:1372 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1397">&lt;anonymous&gt;:1399 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1426">&lt;anonymous&gt;:1428 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1524">&lt;anonymous&gt;:1526 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1536">&lt;anonymous&gt;:1538 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1541">&lt;anonymous&gt;:1543 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1552">&lt;anonymous&gt;:1554 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1566">&lt;anonymous&gt;:1568 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1582">&lt;anonymous&gt;:1584 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1596">&lt;anonymous&gt;:1598 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1655">&lt;anonymous&gt;:1657 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1705">&lt;anonymous&gt;:1707 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L172">&lt;anonymous&gt;:174 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1774">&lt;anonymous&gt;:1776 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1782">&lt;anonymous&gt;:1784 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1804">&lt;anonymous&gt;:1806 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1824">&lt;anonymous&gt;:1826 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L185">&lt;anonymous&gt;:187 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L190">&lt;anonymous&gt;:192 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L241">&lt;anonymous&gt;:243 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L257">&lt;anonymous&gt;:259 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L313">&lt;anonymous&gt;:315 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L387">&lt;anonymous&gt;:389 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L436">&lt;anonymous&gt;:438 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L447">&lt;anonymous&gt;:449 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L454">&lt;anonymous&gt;:456 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L476">&lt;anonymous&gt;:478 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L515">&lt;anonymous&gt;:517 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L573">&lt;anonymous&gt;:575 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L597">&lt;anonymous&gt;:599 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L897">&lt;anonymous&gt;:899 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L84">columns:86 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L81">records:83 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L92">tuple:94 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L193">getTargets:195 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1662">updateCooldowns:1664 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L213">setAttacksAndEats:215 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L78">archetype:80 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L87">row:89 </a></td>
<td class="coverFnHi">5</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L71">debug_world_inspect:73 </a></td>
<td class="coverFnHi">7</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L75">tbl:77 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L72">record:74 </a></td>
<td class="coverFnHi">17</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,544 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/test/test/tests.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - <a href="index.html">jecs/test/test</a> - tests.luau <span style="font-size: 80%;"> (<a href="tests.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.9&nbsp;%</td>
<td class="headerCovTableEntry">1227</td>
<td class="headerCovTableEntry">1201</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">83.6&nbsp;%</td>
<td class="headerCovTableEntry">67</td>
<td class="headerCovTableEntry">56</td>
</tr>
<tr><td><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../../../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="tests.luau .func-c.html"><img src="../../../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1028">&lt;anonymous&gt;:1030 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1056">&lt;anonymous&gt;:1058 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1093">&lt;anonymous&gt;:1095 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1158">&lt;anonymous&gt;:1160 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1189">&lt;anonymous&gt;:1191 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L118">&lt;anonymous&gt;:120 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1208">&lt;anonymous&gt;:1210 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1219">&lt;anonymous&gt;:1221 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1227">&lt;anonymous&gt;:1229 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1304">&lt;anonymous&gt;:1306 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1309">&lt;anonymous&gt;:1311 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1349">&lt;anonymous&gt;:1351 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L134">&lt;anonymous&gt;:136 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1370">&lt;anonymous&gt;:1372 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1397">&lt;anonymous&gt;:1399 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1426">&lt;anonymous&gt;:1428 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1524">&lt;anonymous&gt;:1526 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1536">&lt;anonymous&gt;:1538 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1541">&lt;anonymous&gt;:1543 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1552">&lt;anonymous&gt;:1554 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1566">&lt;anonymous&gt;:1568 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1582">&lt;anonymous&gt;:1584 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1596">&lt;anonymous&gt;:1598 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1655">&lt;anonymous&gt;:1657 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1705">&lt;anonymous&gt;:1707 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L172">&lt;anonymous&gt;:174 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1774">&lt;anonymous&gt;:1776 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1782">&lt;anonymous&gt;:1784 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1804">&lt;anonymous&gt;:1806 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1824">&lt;anonymous&gt;:1826 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L185">&lt;anonymous&gt;:187 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L190">&lt;anonymous&gt;:192 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L241">&lt;anonymous&gt;:243 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L257">&lt;anonymous&gt;:259 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L313">&lt;anonymous&gt;:315 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L387">&lt;anonymous&gt;:389 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L436">&lt;anonymous&gt;:438 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L447">&lt;anonymous&gt;:449 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L454">&lt;anonymous&gt;:456 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L476">&lt;anonymous&gt;:478 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L515">&lt;anonymous&gt;:517 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L573">&lt;anonymous&gt;:575 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L597">&lt;anonymous&gt;:599 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L897">&lt;anonymous&gt;:899 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L78">archetype:80 </a></td>
<td class="coverFnHi">4</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L84">columns:86 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L71">debug_world_inspect:73 </a></td>
<td class="coverFnHi">7</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L193">getTargets:195 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L56">gray:58 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L36">green:38 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L52">green_highlight:54 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L114">name:116 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L61">pe:63 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L66">pp:68 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L72">record:74 </a></td>
<td class="coverFnHi">17</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L81">records:83 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L40">red:42 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L48">red_highlight:50 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L87">row:89 </a></td>
<td class="coverFnHi">5</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L213">setAttacksAndEats:215 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L75">tbl:77 </a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L92">tuple:94 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L1662">updateCooldowns:1664 </a></td>
<td class="coverFnHi">2</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L32">white:34 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L28">white_underline:30 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="tests.luau .gcov.html#L44">yellow:46 </a></td>
<td class="coverFnLo">0</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -1,138 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/ansi.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - ansi.luau <span style="font-size: 80%;"> (<a href="ansi.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">64.7&nbsp;%</td>
<td class="headerCovTableEntry">17</td>
<td class="headerCovTableEntry">11</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">33.3&nbsp;%</td>
<td class="headerCovTableEntry">9</td>
<td class="headerCovTableEntry">3</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="ansi.luau .func.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L28">gray:30 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L24">green_highlight:26 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L12">red:14 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L20">red_highlight:22 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L4">white:6 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L1">white_underline:2 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L8">green:10 </a></td>
<td class="coverFnHi">10</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L16">yellow:18 </a></td>
<td class="coverFnHi">10</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,138 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/ansi.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - ansi.luau <span style="font-size: 80%;"> (<a href="ansi.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">64.7&nbsp;%</td>
<td class="headerCovTableEntry">17</td>
<td class="headerCovTableEntry">11</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">33.3&nbsp;%</td>
<td class="headerCovTableEntry">9</td>
<td class="headerCovTableEntry">3</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="ansi.luau .func-c.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L28">gray:30 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L8">green:10 </a></td>
<td class="coverFnHi">10</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L24">green_highlight:26 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L12">red:14 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L20">red_highlight:22 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L4">white:6 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L1">white_underline:2 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="ansi.luau .gcov.html#L16">yellow:18 </a></td>
<td class="coverFnHi">10</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,107 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/ansi.luau </title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - ansi.luau <span style="font-size: 80%;"> (source / <a href="ansi.luau .func-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">64.7&nbsp;%</td>
<td class="headerCovTableEntry">17</td>
<td class="headerCovTableEntry">11</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">33.3&nbsp;%</td>
<td class="headerCovTableEntry">9</td>
<td class="headerCovTableEntry">3</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Line data Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum"> 1</span> <span class="tlaGNC tlaBgGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/ansi.luau not found */</span></span>
<span id="L2"><span class="lineNum"> 2</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L3"><span class="lineNum"> 3</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L4"><span class="lineNum"> 4</span> : /* ... */</span>
<span id="L5"><span class="lineNum"> 5</span> : /* ... */</span>
<span id="L6"><span class="lineNum"> 6</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L7"><span class="lineNum"> 7</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L8"><span class="lineNum"> 8</span> : /* ... */</span>
<span id="L9"><span class="lineNum"> 9</span> : /* ... */</span>
<span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 10 : /* ... */</span></span>
<span id="L12"><span class="lineNum"> 12</span> : /* ... */</span>
<span id="L13"><span class="lineNum"> 13</span> : /* ... */</span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L16"><span class="lineNum"> 16</span> : /* ... */</span>
<span id="L17"><span class="lineNum"> 17</span> : /* ... */</span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 10 : /* ... */</span></span>
<span id="L20"><span class="lineNum"> 20</span> : /* ... */</span>
<span id="L21"><span class="lineNum"> 21</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/ansi.luau not found */</span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L24"><span class="lineNum"> 24</span> : /* ... */</span>
<span id="L25"><span class="lineNum"> 25</span> : /* ... */</span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L28"><span class="lineNum"> 28</span> : /* ... */</span>
<span id="L29"><span class="lineNum"> 29</span> : /* ... */</span>
<span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,103 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/entity_visualiser.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - entity_visualiser.luau <span style="font-size: 80%;"> (<a href="entity_visualiser.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">93.3&nbsp;%</td>
<td class="headerCovTableEntry">30</td>
<td class="headerCovTableEntry">28</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="entity_visualiser.luau .func.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L13">components:15 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L4">pe:6 </a></td>
<td class="coverFnHi">10</td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L9">name:11 </a></td>
<td class="coverFnHi">16</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,103 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/entity_visualiser.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - entity_visualiser.luau <span style="font-size: 80%;"> (<a href="entity_visualiser.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">93.3&nbsp;%</td>
<td class="headerCovTableEntry">30</td>
<td class="headerCovTableEntry">28</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="entity_visualiser.luau .func-c.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L13">components:15 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L9">name:11 </a></td>
<td class="coverFnHi">16</td>
</tr>
<tr>
<td class="coverFn"><a href="entity_visualiser.luau .gcov.html#L4">pe:6 </a></td>
<td class="coverFnHi">10</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,118 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/entity_visualiser.luau </title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - entity_visualiser.luau <span style="font-size: 80%;"> (source / <a href="entity_visualiser.luau .func-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">93.3&nbsp;%</td>
<td class="headerCovTableEntry">30</td>
<td class="headerCovTableEntry">28</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Line data Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum"> 1</span> <span class="tlaGNC tlaBgGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/entity_visualiser.luau not found */</span></span>
<span id="L2"><span class="lineNum"> 2</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L3"><span class="lineNum"> 3</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L4"><span class="lineNum"> 4</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L5"><span class="lineNum"> 5</span> : /* ... */</span>
<span id="L6"><span class="lineNum"> 6</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L7"><span class="lineNum"> 7</span> <span class="tlaGNC"> 10 : /* ... */</span></span>
<span id="L8"><span class="lineNum"> 8</span> <span class="tlaGNC"> 10 : /* ... */</span></span>
<span id="L9"><span class="lineNum"> 9</span> : /* ... */</span>
<span id="L10"><span class="lineNum"> 10</span> : /* ... */</span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC"> 16 : /* ... */</span></span>
<span id="L13"><span class="lineNum"> 13</span> : /* ... */</span>
<span id="L14"><span class="lineNum"> 14</span> : /* ... */</span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L19"><span class="lineNum"> 19</span> : /* ... */</span>
<span id="L20"><span class="lineNum"> 20</span> : /* ... */</span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC tlaBgGNC"> 3 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/entity_visualiser.luau not found */</span></span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 3 : /* (content generated from line coverage data) */</span></span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 8 : /* ... */</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 8 : /* ... */</span></span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 8 : /* ... */</span></span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 8 : /* ... */</span></span>
<span id="L30"><span class="lineNum"> 30</span> : /* ... */</span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L32"><span class="lineNum"> 32</span> : /* ... */</span>
<span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC tlaBgGNC"> 8 : /* ... */</span></span>
<span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 8 : /* ... */</span></span>
<span id="L35"><span class="lineNum"> 35</span> : /* ... */</span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L38"><span class="lineNum"> 38</span> : /* ... */</span>
<span id="L39"><span class="lineNum"> 39</span> : /* ... */</span>
<span id="L40"><span class="lineNum"> 40</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/entity_visualiser.luau not found */</span></span>
<span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,141 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - jecs/tools</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">63.0&nbsp;%</td>
<td class="headerCovTableEntry">508</td>
<td class="headerCovTableEntry">320</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">63.6&nbsp;%</td>
<td class="headerCovTableEntry">55</td>
<td class="headerCovTableEntry">35</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="../../updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="../../updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="ansi.luau .gcov.html">ansi.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=65 height=10 alt="64.7%"><img src="../../snow.png" width=35 height=10 alt="64.7%"></td></tr></table>
</td>
<td class="coverPerLo">64.7&nbsp;%</td>
<td class="coverNumDflt">17</td>
<td class="coverNumDflt">11</td>
<td class="coverPerLo">33.3&nbsp;%</td>
<td class="coverNumDflt">9</td>
<td class="coverNumDflt">3</td>
</tr>
<tr>
<td class="coverFile"><a href="testkit.luau .gcov.html">testkit.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=66 height=10 alt="66.1%"><img src="../../snow.png" width=34 height=10 alt="66.1%"></td></tr></table>
</td>
<td class="coverPerLo">66.1&nbsp;%</td>
<td class="coverNumDflt">319</td>
<td class="coverNumDflt">211</td>
<td class="coverPerLo">64.5&nbsp;%</td>
<td class="coverNumDflt">31</td>
<td class="coverNumDflt">20</td>
</tr>
<tr>
<td class="coverFile"><a href="lifetime_tracker.luau .gcov.html">lifetime_tracker.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=49 height=10 alt="49.3%"><img src="../../snow.png" width=51 height=10 alt="49.3%"></td></tr></table>
</td>
<td class="coverPerLo">49.3&nbsp;%</td>
<td class="coverNumDflt">142</td>
<td class="coverNumDflt">70</td>
<td class="coverPerLo">72.7&nbsp;%</td>
<td class="coverNumDflt">11</td>
<td class="coverNumDflt">8</td>
</tr>
<tr>
<td class="coverFile"><a href="entity_visualiser.luau .gcov.html">entity_visualiser.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=93 height=10 alt="93.3%"><img src="../../snow.png" width=7 height=10 alt="93.3%"></td></tr></table>
</td>
<td class="coverPerHi">93.3&nbsp;%</td>
<td class="coverNumDflt">30</td>
<td class="coverNumDflt">28</td>
<td class="coverPerHi">100.0&nbsp;%</td>
<td class="coverNumDflt">4</td>
<td class="coverNumDflt">4</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,141 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - jecs/tools</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">63.0&nbsp;%</td>
<td class="headerCovTableEntry">508</td>
<td class="headerCovTableEntry">320</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">63.6&nbsp;%</td>
<td class="headerCovTableEntry">55</td>
<td class="headerCovTableEntry">35</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><a href="index.html"><img src="../../updown.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></a></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="lifetime_tracker.luau .gcov.html">lifetime_tracker.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=49 height=10 alt="49.3%"><img src="../../snow.png" width=51 height=10 alt="49.3%"></td></tr></table>
</td>
<td class="coverPerLo">49.3&nbsp;%</td>
<td class="coverNumDflt">142</td>
<td class="coverNumDflt">70</td>
<td class="coverPerLo">72.7&nbsp;%</td>
<td class="coverNumDflt">11</td>
<td class="coverNumDflt">8</td>
</tr>
<tr>
<td class="coverFile"><a href="ansi.luau .gcov.html">ansi.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=65 height=10 alt="64.7%"><img src="../../snow.png" width=35 height=10 alt="64.7%"></td></tr></table>
</td>
<td class="coverPerLo">64.7&nbsp;%</td>
<td class="coverNumDflt">17</td>
<td class="coverNumDflt">11</td>
<td class="coverPerLo">33.3&nbsp;%</td>
<td class="coverNumDflt">9</td>
<td class="coverNumDflt">3</td>
</tr>
<tr>
<td class="coverFile"><a href="testkit.luau .gcov.html">testkit.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=66 height=10 alt="66.1%"><img src="../../snow.png" width=34 height=10 alt="66.1%"></td></tr></table>
</td>
<td class="coverPerLo">66.1&nbsp;%</td>
<td class="coverNumDflt">319</td>
<td class="coverNumDflt">211</td>
<td class="coverPerLo">64.5&nbsp;%</td>
<td class="coverNumDflt">31</td>
<td class="coverNumDflt">20</td>
</tr>
<tr>
<td class="coverFile"><a href="entity_visualiser.luau .gcov.html">entity_visualiser.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=93 height=10 alt="93.3%"><img src="../../snow.png" width=7 height=10 alt="93.3%"></td></tr></table>
</td>
<td class="coverPerHi">93.3&nbsp;%</td>
<td class="coverNumDflt">30</td>
<td class="coverNumDflt">28</td>
<td class="coverPerHi">100.0&nbsp;%</td>
<td class="coverNumDflt">4</td>
<td class="coverNumDflt">4</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,141 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - jecs/tools</td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">63.0&nbsp;%</td>
<td class="headerCovTableEntry">508</td>
<td class="headerCovTableEntry">320</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">63.6&nbsp;%</td>
<td class="headerCovTableEntry">55</td>
<td class="headerCovTableEntry">35</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table width="80%" cellpadding=1 cellspacing=1 border=0>
<tr>
<td width="40%"><br></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
<td width="8%"></td>
</tr>
<tr>
<td class="tableHead" rowspan=2>Filename <span title="Click to sort table by file name" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by file name" title="Click to sort table by file name" border=0></span></td>
<td class="tableHead" colspan=4>Line Coverage <span title="Click to sort table by line coverage" class="tableHeadSort"><a href="index-sort-l.html"><img src="../../updown.png" width=10 height=14 alt="Sort by line coverage" title="Click to sort table by line coverage" border=0></a></span></td>
<td class="tableHead" colspan=3>Function Coverage <span title="Click to sort table by function coverage" class="tableHeadSort"><a href="index-sort-f.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function coverage" title="Click to sort table by function coverage" border=0></a></span></td>
</tr>
<tr>
<td class="tableHead" colspan=2> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
<td class="tableHead"> Rate</td>
<td class="tableHead"> Total</td>
<td class="tableHead"> Hit</td>
</tr>
<tr>
<td class="coverFile"><a href="ansi.luau .gcov.html">ansi.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=65 height=10 alt="64.7%"><img src="../../snow.png" width=35 height=10 alt="64.7%"></td></tr></table>
</td>
<td class="coverPerLo">64.7&nbsp;%</td>
<td class="coverNumDflt">17</td>
<td class="coverNumDflt">11</td>
<td class="coverPerLo">33.3&nbsp;%</td>
<td class="coverNumDflt">9</td>
<td class="coverNumDflt">3</td>
</tr>
<tr>
<td class="coverFile"><a href="entity_visualiser.luau .gcov.html">entity_visualiser.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=93 height=10 alt="93.3%"><img src="../../snow.png" width=7 height=10 alt="93.3%"></td></tr></table>
</td>
<td class="coverPerHi">93.3&nbsp;%</td>
<td class="coverNumDflt">30</td>
<td class="coverNumDflt">28</td>
<td class="coverPerHi">100.0&nbsp;%</td>
<td class="coverNumDflt">4</td>
<td class="coverNumDflt">4</td>
</tr>
<tr>
<td class="coverFile"><a href="lifetime_tracker.luau .gcov.html">lifetime_tracker.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=49 height=10 alt="49.3%"><img src="../../snow.png" width=51 height=10 alt="49.3%"></td></tr></table>
</td>
<td class="coverPerLo">49.3&nbsp;%</td>
<td class="coverNumDflt">142</td>
<td class="coverNumDflt">70</td>
<td class="coverPerLo">72.7&nbsp;%</td>
<td class="coverNumDflt">11</td>
<td class="coverNumDflt">8</td>
</tr>
<tr>
<td class="coverFile"><a href="testkit.luau .gcov.html">testkit.luau </a></td>
<td class="coverBar" align="center">
<table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../ruby.png" width=66 height=10 alt="66.1%"><img src="../../snow.png" width=34 height=10 alt="66.1%"></td></tr></table>
</td>
<td class="coverPerLo">66.1&nbsp;%</td>
<td class="coverNumDflt">319</td>
<td class="coverNumDflt">211</td>
<td class="coverPerLo">64.5&nbsp;%</td>
<td class="coverNumDflt">31</td>
<td class="coverNumDflt">20</td>
</tr>
</table>
</center>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,152 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/lifetime_tracker.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - lifetime_tracker.luau <span style="font-size: 80%;"> (<a href="lifetime_tracker.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">49.3&nbsp;%</td>
<td class="headerCovTableEntry">142</td>
<td class="headerCovTableEntry">70</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">72.7&nbsp;%</td>
<td class="headerCovTableEntry">11</td>
<td class="headerCovTableEntry">8</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="lifetime_tracker.luau .func.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L133">&lt;anonymous&gt;:135 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L87">&lt;anonymous&gt;:89 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L24">name:26 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L162">&lt;anonymous&gt;:164 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L173">&lt;anonymous&gt;:175 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L60">&lt;anonymous&gt;:62 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L34">lifetime_tracker_add:36 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L46">&lt;anonymous&gt;:48 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L10">print_centered_entity:12 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L28">pad:30 </a></td>
<td class="coverFnHi">5</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,152 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/lifetime_tracker.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - lifetime_tracker.luau <span style="font-size: 80%;"> (<a href="lifetime_tracker.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">49.3&nbsp;%</td>
<td class="headerCovTableEntry">142</td>
<td class="headerCovTableEntry">70</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">72.7&nbsp;%</td>
<td class="headerCovTableEntry">11</td>
<td class="headerCovTableEntry">8</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="lifetime_tracker.luau .func-c.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L133">&lt;anonymous&gt;:135 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L162">&lt;anonymous&gt;:164 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L173">&lt;anonymous&gt;:175 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L46">&lt;anonymous&gt;:48 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L60">&lt;anonymous&gt;:62 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L87">&lt;anonymous&gt;:89 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L34">lifetime_tracker_add:36 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L24">name:26 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L28">pad:30 </a></td>
<td class="coverFnHi">5</td>
</tr>
<tr>
<td class="coverFn"><a href="lifetime_tracker.luau .gcov.html#L10">print_centered_entity:12 </a></td>
<td class="coverFnHi">3</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,292 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/lifetime_tracker.luau </title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - lifetime_tracker.luau <span style="font-size: 80%;"> (source / <a href="lifetime_tracker.luau .func-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">49.3&nbsp;%</td>
<td class="headerCovTableEntry">142</td>
<td class="headerCovTableEntry">70</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">72.7&nbsp;%</td>
<td class="headerCovTableEntry">11</td>
<td class="headerCovTableEntry">8</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Line data Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum"> 1</span> <span class="tlaGNC tlaBgGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L2"><span class="lineNum"> 2</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L3"><span class="lineNum"> 3</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L4"><span class="lineNum"> 4</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L5"><span class="lineNum"> 5</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L6"><span class="lineNum"> 6</span> : /* ... */</span>
<span id="L7"><span class="lineNum"> 7</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L8"><span class="lineNum"> 8</span> : /* ... */</span>
<span id="L9"><span class="lineNum"> 9</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L11"><span class="lineNum"> 11</span> : /* ... */</span>
<span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L15"><span class="lineNum"> 15</span> : /* ... */</span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L17"><span class="lineNum"> 17</span> : /* ... */</span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L20"><span class="lineNum"> 20</span> : /* ... */</span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 3 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L22"><span class="lineNum"> 22</span> : /* (content generated from line coverage data) */</span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L24"><span class="lineNum"> 24</span> : /* ... */</span>
<span id="L25"><span class="lineNum"> 25</span> : /* ... */</span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L28"><span class="lineNum"> 28</span> : /* ... */</span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 5 : /* ... */</span></span>
<span id="L32"><span class="lineNum"> 32</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L33"><span class="lineNum"> 33</span> : /* ... */</span>
<span id="L34"><span class="lineNum"> 34</span> : /* ... */</span>
<span id="L35"><span class="lineNum"> 35</span> : /* ... */</span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L40"><span class="lineNum"> 40</span> : /* ... */</span>
<span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L42"><span class="lineNum"> 42</span> : /* (content generated from line coverage data) */</span>
<span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L44"><span class="lineNum"> 44</span> : /* ... */</span>
<span id="L45"><span class="lineNum"> 45</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L46"><span class="lineNum"> 46</span> : /* ... */</span>
<span id="L47"><span class="lineNum"> 47</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L48"><span class="lineNum"> 48</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L49"><span class="lineNum"> 49</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L50"><span class="lineNum"> 50</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L51"><span class="lineNum"> 51</span> : /* ... */</span>
<span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC tlaBgGNC"> 3 : /* ... */</span></span>
<span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L55"><span class="lineNum"> 55</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L56"><span class="lineNum"> 56</span> : /* ... */</span>
<span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC tlaBgGNC"> 3 : /* ... */</span></span>
<span id="L58"><span class="lineNum"> 58</span> : /* ... */</span>
<span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L60"><span class="lineNum"> 60</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L61"><span class="lineNum"> 61</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span>
<span id="L62"><span class="lineNum"> 62</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L63"><span class="lineNum"> 63</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L64"><span class="lineNum"> 64</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L65"><span class="lineNum"> 65</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L66"><span class="lineNum"> 66</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L67"><span class="lineNum"> 67</span> : /* ... */</span>
<span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L69"><span class="lineNum"> 69</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L70"><span class="lineNum"> 70</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L71"><span class="lineNum"> 71</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L72"><span class="lineNum"> 72</span> <span class="tlaGNC"> 2 : /* ... */</span></span>
<span id="L73"><span class="lineNum"> 73</span> <span class="tlaGNC"> 2 : /* ... */</span></span>
<span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 2 : /* ... */</span></span>
<span id="L75"><span class="lineNum"> 75</span> : /* ... */</span>
<span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L77"><span class="lineNum"> 77</span> : /* ... */</span>
<span id="L78"><span class="lineNum"> 78</span> : /* ... */</span>
<span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L80"><span class="lineNum"> 80</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L81"><span class="lineNum"> 81</span> <span class="tlaGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L83"><span class="lineNum"> 83</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L84"><span class="lineNum"> 84</span> : /* ... */</span>
<span id="L85"><span class="lineNum"> 85</span> : /* ... */</span>
<span id="L86"><span class="lineNum"> 86</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L87"><span class="lineNum"> 87</span> : /* ... */</span>
<span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L89"><span class="lineNum"> 89</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L90"><span class="lineNum"> 90</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L91"><span class="lineNum"> 91</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L92"><span class="lineNum"> 92</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L93"><span class="lineNum"> 93</span> : /* ... */</span>
<span id="L94"><span class="lineNum"> 94</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L95"><span class="lineNum"> 95</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L96"><span class="lineNum"> 96</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L97"><span class="lineNum"> 97</span> : /* ... */</span>
<span id="L98"><span class="lineNum"> 98</span> : /* ... */</span>
<span id="L99"><span class="lineNum"> 99</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L100"><span class="lineNum"> 100</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L101"><span class="lineNum"> 101</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L102"><span class="lineNum"> 102</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L103"><span class="lineNum"> 103</span> : /* ... */</span>
<span id="L104"><span class="lineNum"> 104</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L105"><span class="lineNum"> 105</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L106"><span class="lineNum"> 106</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L107"><span class="lineNum"> 107</span> : /* ... */</span>
<span id="L108"><span class="lineNum"> 108</span> : /* ... */</span>
<span id="L109"><span class="lineNum"> 109</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L110"><span class="lineNum"> 110</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L111"><span class="lineNum"> 111</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L112"><span class="lineNum"> 112</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L113"><span class="lineNum"> 113</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L114"><span class="lineNum"> 114</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L115"><span class="lineNum"> 115</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L116"><span class="lineNum"> 116</span> : /* ... */</span>
<span id="L117"><span class="lineNum"> 117</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L118"><span class="lineNum"> 118</span> : /* ... */</span>
<span id="L119"><span class="lineNum"> 119</span> : /* ... */</span>
<span id="L120"><span class="lineNum"> 120</span> : /* ... */</span>
<span id="L121"><span class="lineNum"> 121</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L122"><span class="lineNum"> 122</span> : /* (content generated from line coverage data) */</span>
<span id="L123"><span class="lineNum"> 123</span> : /* ... */</span>
<span id="L124"><span class="lineNum"> 124</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L125"><span class="lineNum"> 125</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L126"><span class="lineNum"> 126</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L127"><span class="lineNum"> 127</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L128"><span class="lineNum"> 128</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L129"><span class="lineNum"> 129</span> : /* ... */</span>
<span id="L130"><span class="lineNum"> 130</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L131"><span class="lineNum"> 131</span> : /* ... */</span>
<span id="L132"><span class="lineNum"> 132</span> : /* ... */</span>
<span id="L133"><span class="lineNum"> 133</span> : /* ... */</span>
<span id="L134"><span class="lineNum"> 134</span> : /* ... */</span>
<span id="L135"><span class="lineNum"> 135</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L136"><span class="lineNum"> 136</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L137"><span class="lineNum"> 137</span> : /* ... */</span>
<span id="L138"><span class="lineNum"> 138</span> : /* ... */</span>
<span id="L139"><span class="lineNum"> 139</span> : /* ... */</span>
<span id="L140"><span class="lineNum"> 140</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L141"><span class="lineNum"> 141</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L142"><span class="lineNum"> 142</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L143"><span class="lineNum"> 143</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L144"><span class="lineNum"> 144</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L145"><span class="lineNum"> 145</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L146"><span class="lineNum"> 146</span> : /* ... */</span>
<span id="L147"><span class="lineNum"> 147</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L148"><span class="lineNum"> 148</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L149"><span class="lineNum"> 149</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L150"><span class="lineNum"> 150</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L151"><span class="lineNum"> 151</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L152"><span class="lineNum"> 152</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L153"><span class="lineNum"> 153</span> : /* ... */</span>
<span id="L154"><span class="lineNum"> 154</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L155"><span class="lineNum"> 155</span> : /* ... */</span>
<span id="L156"><span class="lineNum"> 156</span> : /* ... */</span>
<span id="L157"><span class="lineNum"> 157</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L158"><span class="lineNum"> 158</span> : /* ... */</span>
<span id="L159"><span class="lineNum"> 159</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L160"><span class="lineNum"> 160</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L161"><span class="lineNum"> 161</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span>
<span id="L162"><span class="lineNum"> 162</span> <span class="tlaGNC tlaBgGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L163"><span class="lineNum"> 163</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L164"><span class="lineNum"> 164</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L165"><span class="lineNum"> 165</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L166"><span class="lineNum"> 166</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L167"><span class="lineNum"> 167</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L168"><span class="lineNum"> 168</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L169"><span class="lineNum"> 169</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L170"><span class="lineNum"> 170</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L171"><span class="lineNum"> 171</span> : /* ... */</span>
<span id="L172"><span class="lineNum"> 172</span> : /* ... */</span>
<span id="L173"><span class="lineNum"> 173</span> : /* ... */</span>
<span id="L174"><span class="lineNum"> 174</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L175"><span class="lineNum"> 175</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L176"><span class="lineNum"> 176</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L177"><span class="lineNum"> 177</span> : /* ... */</span>
<span id="L178"><span class="lineNum"> 178</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L179"><span class="lineNum"> 179</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L180"><span class="lineNum"> 180</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L181"><span class="lineNum"> 181</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L182"><span class="lineNum"> 182</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L183"><span class="lineNum"> 183</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L184"><span class="lineNum"> 184</span> : /* ... */</span>
<span id="L185"><span class="lineNum"> 185</span> : /* ... */</span>
<span id="L186"><span class="lineNum"> 186</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L187"><span class="lineNum"> 187</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L188"><span class="lineNum"> 188</span> : /* ... */</span>
<span id="L189"><span class="lineNum"> 189</span> : /* ... */</span>
<span id="L190"><span class="lineNum"> 190</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L191"><span class="lineNum"> 191</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L192"><span class="lineNum"> 192</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L193"><span class="lineNum"> 193</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L194"><span class="lineNum"> 194</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L195"><span class="lineNum"> 195</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L196"><span class="lineNum"> 196</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L197"><span class="lineNum"> 197</span> : /* ... */</span>
<span id="L198"><span class="lineNum"> 198</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L199"><span class="lineNum"> 199</span> : /* ... */</span>
<span id="L200"><span class="lineNum"> 200</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L201"><span class="lineNum"> 201</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/lifetime_tracker.luau not found */</span></span>
<span id="L202"><span class="lineNum"> 202</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L203"><span class="lineNum"> 203</span> : /* ... */</span>
<span id="L204"><span class="lineNum"> 204</span> : /* ... */</span>
<span id="L205"><span class="lineNum"> 205</span> : /* ... */</span>
<span id="L206"><span class="lineNum"> 206</span> : /* ... */</span>
<span id="L207"><span class="lineNum"> 207</span> : /* ... */</span>
<span id="L208"><span class="lineNum"> 208</span> : /* ... */</span>
<span id="L209"><span class="lineNum"> 209</span> : /* ... */</span>
<span id="L210"><span class="lineNum"> 210</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L211"><span class="lineNum"> 211</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L212"><span class="lineNum"> 212</span> : /* ... */</span>
<span id="L213"><span class="lineNum"> 213</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L214"><span class="lineNum"> 214</span> : /* ... */</span>
<span id="L215"><span class="lineNum"> 215</span> : /* ... */</span>
<span id="L216"><span class="lineNum"> 216</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,292 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/testkit.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - testkit.luau <span style="font-size: 80%;"> (<a href="testkit.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">66.1&nbsp;%</td>
<td class="headerCovTableEntry">319</td>
<td class="headerCovTableEntry">211</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">64.5&nbsp;%</td>
<td class="headerCovTableEntry">31</td>
<td class="headerCovTableEntry">20</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="testkit.luau .func.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L238">&lt;anonymous&gt;:240 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L348">&lt;anonymous&gt;:350 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L256">FOCUS:258 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L494">deep_eq:496 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L543">disable_formatting:545 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L33">green_highlight:35 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L390">print2:392 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L29">red_highlight:31 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L474">shallow_eq:476 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L395">tos:397 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L9">white_underline:11 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L267">FINISH:269 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L308">SKIP:310 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L324">START:326 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L539">benchmark:541 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L527">test:529 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L336">BENCH:338 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L46">convert_units:48 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L366">round:368 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L181">CHECK_EXPECT_ERR:183 </a></td>
<td class="coverFnHi">9</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L222">TEST:224 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L129">output_test_result:131 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L13">white:15 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L167">CASE:169 </a></td>
<td class="coverFnHi">72</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L41">orange:43 </a></td>
<td class="coverFnHi">72</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L25">yellow:27 </a></td>
<td class="coverFnHi">75</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L17">green:19 </a></td>
<td class="coverFnHi">76</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L37">gray:39 </a></td>
<td class="coverFnHi">83</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L21">red:23 </a></td>
<td class="coverFnHi">144</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L199">CHECK:201 </a></td>
<td class="coverFnHi">1173</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,292 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/testkit.luau - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - testkit.luau <span style="font-size: 80%;"> (<a href="testkit.luau .gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">66.1&nbsp;%</td>
<td class="headerCovTableEntry">319</td>
<td class="headerCovTableEntry">211</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">64.5&nbsp;%</td>
<td class="headerCovTableEntry">31</td>
<td class="headerCovTableEntry">20</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="testkit.luau .func-c.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L238">&lt;anonymous&gt;:240 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L348">&lt;anonymous&gt;:350 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L1">&lt;main&gt; </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L336">BENCH:338 </a></td>
<td class="coverFnHi">3</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L167">CASE:169 </a></td>
<td class="coverFnHi">72</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L199">CHECK:201 </a></td>
<td class="coverFnHi">1173</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L181">CHECK_EXPECT_ERR:183 </a></td>
<td class="coverFnHi">9</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L267">FINISH:269 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L256">FOCUS:258 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L308">SKIP:310 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L324">START:326 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L222">TEST:224 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L539">benchmark:541 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L46">convert_units:48 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L494">deep_eq:496 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L543">disable_formatting:545 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L37">gray:39 </a></td>
<td class="coverFnHi">83</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L17">green:19 </a></td>
<td class="coverFnHi">76</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L33">green_highlight:35 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L41">orange:43 </a></td>
<td class="coverFnHi">72</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L129">output_test_result:131 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L390">print2:392 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L21">red:23 </a></td>
<td class="coverFnHi">144</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L29">red_highlight:31 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L366">round:368 </a></td>
<td class="coverFnHi">6</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L474">shallow_eq:476 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L527">test:529 </a></td>
<td class="coverFnHi">1</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L395">tos:397 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L13">white:15 </a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L9">white_underline:11 </a></td>
<td class="coverFnLo">0</td>
</tr>
<tr>
<td class="coverFn"><a href="testkit.luau .gcov.html#L25">yellow:27 </a></td>
<td class="coverFnHi">75</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View file

@ -1,630 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.out - jecs/tools/testkit.luau </title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">jecs/tools</a> - testkit.luau <span style="font-size: 80%;"> (source / <a href="testkit.luau .func-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">coverage.out</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryLo">66.1&nbsp;%</td>
<td class="headerCovTableEntry">319</td>
<td class="headerCovTableEntry">211</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2025-03-27 03:52:25</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">64.5&nbsp;%</td>
<td class="headerCovTableEntry">31</td>
<td class="headerCovTableEntry">20</td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Line data Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum"> 1</span> <span class="tlaGNC tlaBgGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L2"><span class="lineNum"> 2</span> : /* (content generated from line coverage data) */</span>
<span id="L3"><span class="lineNum"> 3</span> : /* ... */</span>
<span id="L4"><span class="lineNum"> 4</span> : /* ... */</span>
<span id="L5"><span class="lineNum"> 5</span> : /* ... */</span>
<span id="L6"><span class="lineNum"> 6</span> : /* ... */</span>
<span id="L7"><span class="lineNum"> 7</span> : /* ... */</span>
<span id="L8"><span class="lineNum"> 8</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L9"><span class="lineNum"> 9</span> : /* ... */</span>
<span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L12"><span class="lineNum"> 12</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L13"><span class="lineNum"> 13</span> : /* ... */</span>
<span id="L14"><span class="lineNum"> 14</span> : /* ... */</span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L17"><span class="lineNum"> 17</span> : /* ... */</span>
<span id="L18"><span class="lineNum"> 18</span> : /* ... */</span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 76 : /* ... */</span></span>
<span id="L21"><span class="lineNum"> 21</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L22"><span class="lineNum"> 22</span> : /* (content generated from line coverage data) */</span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 144 : /* ... */</span></span>
<span id="L25"><span class="lineNum"> 25</span> : /* ... */</span>
<span id="L26"><span class="lineNum"> 26</span> : /* ... */</span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 75 : /* ... */</span></span>
<span id="L29"><span class="lineNum"> 29</span> : /* ... */</span>
<span id="L30"><span class="lineNum"> 30</span> : /* ... */</span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L32"><span class="lineNum"> 32</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L33"><span class="lineNum"> 33</span> : /* ... */</span>
<span id="L34"><span class="lineNum"> 34</span> : /* ... */</span>
<span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L37"><span class="lineNum"> 37</span> : /* ... */</span>
<span id="L38"><span class="lineNum"> 38</span> : /* ... */</span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L40"><span class="lineNum"> 40</span> <span class="tlaGNC"> 83 : /* ... */</span></span>
<span id="L41"><span class="lineNum"> 41</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L42"><span class="lineNum"> 42</span> : /* (content generated from line coverage data) */</span>
<span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L44"><span class="lineNum"> 44</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L45"><span class="lineNum"> 45</span> : /* ... */</span>
<span id="L46"><span class="lineNum"> 46</span> : /* ... */</span>
<span id="L47"><span class="lineNum"> 47</span> : /* ... */</span>
<span id="L48"><span class="lineNum"> 48</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L49"><span class="lineNum"> 49</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L50"><span class="lineNum"> 50</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L51"><span class="lineNum"> 51</span> : /* ... */</span>
<span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L55"><span class="lineNum"> 55</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L56"><span class="lineNum"> 56</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L58"><span class="lineNum"> 58</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L60"><span class="lineNum"> 60</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 6 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L62"><span class="lineNum"> 62</span> : /* (content generated from line coverage data) */</span>
<span id="L63"><span class="lineNum"> 63</span> : /* ... */</span>
<span id="L64"><span class="lineNum"> 64</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L65"><span class="lineNum"> 65</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L66"><span class="lineNum"> 66</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L69"><span class="lineNum"> 69</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L70"><span class="lineNum"> 70</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L71"><span class="lineNum"> 71</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L72"><span class="lineNum"> 72</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L73"><span class="lineNum"> 73</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L74"><span class="lineNum"> 74</span> : /* ... */</span>
<span id="L75"><span class="lineNum"> 75</span> : /* ... */</span>
<span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L77"><span class="lineNum"> 77</span> : /* ... */</span>
<span id="L78"><span class="lineNum"> 78</span> <span class="tlaGNC"> 7 : /* ... */</span></span>
<span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L80"><span class="lineNum"> 80</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L81"><span class="lineNum"> 81</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L82"><span class="lineNum"> 82</span> : /* (content generated from line coverage data) */</span>
<span id="L83"><span class="lineNum"> 83</span> <span class="tlaGNC"> 11 : /* ... */</span></span>
<span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 7 : /* ... */</span></span>
<span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 7 : /* ... */</span></span>
<span id="L86"><span class="lineNum"> 86</span> : /* ... */</span>
<span id="L87"><span class="lineNum"> 87</span> : /* ... */</span>
<span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L89"><span class="lineNum"> 89</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 5 : /* ... */</span></span>
<span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L92"><span class="lineNum"> 92</span> <span class="tlaGNC"> 4 : /* ... */</span></span>
<span id="L93"><span class="lineNum"> 93</span> <span class="tlaGNC"> 2 : /* ... */</span></span>
<span id="L94"><span class="lineNum"> 94</span> : /* ... */</span>
<span id="L95"><span class="lineNum"> 95</span> : /* ... */</span>
<span id="L96"><span class="lineNum"> 96</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L97"><span class="lineNum"> 97</span> : /* ... */</span>
<span id="L98"><span class="lineNum"> 98</span> : /* ... */</span>
<span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L100"><span class="lineNum"> 100</span> : /* ... */</span>
<span id="L101"><span class="lineNum"> 101</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L102"><span class="lineNum"> 102</span> : /* (content generated from line coverage data) */</span>
<span id="L103"><span class="lineNum"> 103</span> : /* ... */</span>
<span id="L104"><span class="lineNum"> 104</span> : /* ... */</span>
<span id="L105"><span class="lineNum"> 105</span> : /* ... */</span>
<span id="L106"><span class="lineNum"> 106</span> : /* ... */</span>
<span id="L107"><span class="lineNum"> 107</span> : /* ... */</span>
<span id="L108"><span class="lineNum"> 108</span> : /* ... */</span>
<span id="L109"><span class="lineNum"> 109</span> : /* ... */</span>
<span id="L110"><span class="lineNum"> 110</span> : /* ... */</span>
<span id="L111"><span class="lineNum"> 111</span> : /* ... */</span>
<span id="L112"><span class="lineNum"> 112</span> : /* ... */</span>
<span id="L113"><span class="lineNum"> 113</span> : /* ... */</span>
<span id="L114"><span class="lineNum"> 114</span> : /* ... */</span>
<span id="L115"><span class="lineNum"> 115</span> : /* ... */</span>
<span id="L116"><span class="lineNum"> 116</span> : /* ... */</span>
<span id="L117"><span class="lineNum"> 117</span> : /* ... */</span>
<span id="L118"><span class="lineNum"> 118</span> : /* ... */</span>
<span id="L119"><span class="lineNum"> 119</span> : /* ... */</span>
<span id="L120"><span class="lineNum"> 120</span> : /* ... */</span>
<span id="L121"><span class="lineNum"> 121</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L122"><span class="lineNum"> 122</span> : /* (content generated from line coverage data) */</span>
<span id="L123"><span class="lineNum"> 123</span> : /* ... */</span>
<span id="L124"><span class="lineNum"> 124</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L125"><span class="lineNum"> 125</span> : /* ... */</span>
<span id="L126"><span class="lineNum"> 126</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L127"><span class="lineNum"> 127</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L128"><span class="lineNum"> 128</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L129"><span class="lineNum"> 129</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L130"><span class="lineNum"> 130</span> : /* ... */</span>
<span id="L131"><span class="lineNum"> 131</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L132"><span class="lineNum"> 132</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L133"><span class="lineNum"> 133</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L134"><span class="lineNum"> 134</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L135"><span class="lineNum"> 135</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L136"><span class="lineNum"> 136</span> : /* ... */</span>
<span id="L137"><span class="lineNum"> 137</span> : /* ... */</span>
<span id="L138"><span class="lineNum"> 138</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L139"><span class="lineNum"> 139</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L140"><span class="lineNum"> 140</span> : /* ... */</span>
<span id="L141"><span class="lineNum"> 141</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L142"><span class="lineNum"> 142</span> : /* (content generated from line coverage data) */</span>
<span id="L143"><span class="lineNum"> 143</span> <span class="tlaGNC tlaBgGNC"> 24 : /* ... */</span></span>
<span id="L144"><span class="lineNum"> 144</span> : /* ... */</span>
<span id="L145"><span class="lineNum"> 145</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L146"><span class="lineNum"> 146</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L147"><span class="lineNum"> 147</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L148"><span class="lineNum"> 148</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L149"><span class="lineNum"> 149</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L150"><span class="lineNum"> 150</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L151"><span class="lineNum"> 151</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L152"><span class="lineNum"> 152</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L153"><span class="lineNum"> 153</span> : /* ... */</span>
<span id="L154"><span class="lineNum"> 154</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L155"><span class="lineNum"> 155</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L156"><span class="lineNum"> 156</span> : /* ... */</span>
<span id="L157"><span class="lineNum"> 157</span> : /* ... */</span>
<span id="L158"><span class="lineNum"> 158</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L159"><span class="lineNum"> 159</span> : /* ... */</span>
<span id="L160"><span class="lineNum"> 160</span> : /* ... */</span>
<span id="L161"><span class="lineNum"> 161</span> <span class="tlaGNC"> 24 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L162"><span class="lineNum"> 162</span> <span class="tlaUNC tlaBgUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L163"><span class="lineNum"> 163</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L164"><span class="lineNum"> 164</span> : /* ... */</span>
<span id="L165"><span class="lineNum"> 165</span> <span class="tlaGNC tlaBgGNC"> 24 : /* ... */</span></span>
<span id="L166"><span class="lineNum"> 166</span> : /* ... */</span>
<span id="L167"><span class="lineNum"> 167</span> : /* ... */</span>
<span id="L168"><span class="lineNum"> 168</span> : /* ... */</span>
<span id="L169"><span class="lineNum"> 169</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L170"><span class="lineNum"> 170</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L171"><span class="lineNum"> 171</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L172"><span class="lineNum"> 172</span> : /* ... */</span>
<span id="L173"><span class="lineNum"> 173</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L174"><span class="lineNum"> 174</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L175"><span class="lineNum"> 175</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L176"><span class="lineNum"> 176</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L177"><span class="lineNum"> 177</span> : /* ... */</span>
<span id="L178"><span class="lineNum"> 178</span> : /* ... */</span>
<span id="L179"><span class="lineNum"> 179</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L180"><span class="lineNum"> 180</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L181"><span class="lineNum"> 181</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L182"><span class="lineNum"> 182</span> : /* (content generated from line coverage data) */</span>
<span id="L183"><span class="lineNum"> 183</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L184"><span class="lineNum"> 184</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L185"><span class="lineNum"> 185</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L186"><span class="lineNum"> 186</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L187"><span class="lineNum"> 187</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L188"><span class="lineNum"> 188</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L189"><span class="lineNum"> 189</span> : /* ... */</span>
<span id="L190"><span class="lineNum"> 190</span> <span class="tlaGNC tlaBgGNC"> 9 : /* ... */</span></span>
<span id="L191"><span class="lineNum"> 191</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L192"><span class="lineNum"> 192</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L193"><span class="lineNum"> 193</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L194"><span class="lineNum"> 194</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L195"><span class="lineNum"> 195</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L196"><span class="lineNum"> 196</span> : /* ... */</span>
<span id="L197"><span class="lineNum"> 197</span> <span class="tlaGNC tlaBgGNC"> 9 : /* ... */</span></span>
<span id="L198"><span class="lineNum"> 198</span> : /* ... */</span>
<span id="L199"><span class="lineNum"> 199</span> : /* ... */</span>
<span id="L200"><span class="lineNum"> 200</span> : /* ... */</span>
<span id="L201"><span class="lineNum"> 201</span> <span class="tlaGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L202"><span class="lineNum"> 202</span> <span class="tlaGNC"> 1173 : /* (content generated from line coverage data) */</span></span>
<span id="L203"><span class="lineNum"> 203</span> : /* ... */</span>
<span id="L204"><span class="lineNum"> 204</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L205"><span class="lineNum"> 205</span> : /* ... */</span>
<span id="L206"><span class="lineNum"> 206</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L207"><span class="lineNum"> 207</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L208"><span class="lineNum"> 208</span> <span class="tlaGNC"> 9 : /* ... */</span></span>
<span id="L209"><span class="lineNum"> 209</span> : /* ... */</span>
<span id="L210"><span class="lineNum"> 210</span> : /* ... */</span>
<span id="L211"><span class="lineNum"> 211</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L212"><span class="lineNum"> 212</span> : /* ... */</span>
<span id="L213"><span class="lineNum"> 213</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L214"><span class="lineNum"> 214</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L215"><span class="lineNum"> 215</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L216"><span class="lineNum"> 216</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L217"><span class="lineNum"> 217</span> : /* ... */</span>
<span id="L218"><span class="lineNum"> 218</span> <span class="tlaGNC"> 1173 : /* ... */</span></span>
<span id="L219"><span class="lineNum"> 219</span> : /* ... */</span>
<span id="L220"><span class="lineNum"> 220</span> : /* ... */</span>
<span id="L221"><span class="lineNum"> 221</span> <span class="tlaGNC"> 1173 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L222"><span class="lineNum"> 222</span> : /* (content generated from line coverage data) */</span>
<span id="L223"><span class="lineNum"> 223</span> : /* ... */</span>
<span id="L224"><span class="lineNum"> 224</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L225"><span class="lineNum"> 225</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L226"><span class="lineNum"> 226</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L227"><span class="lineNum"> 227</span> : /* ... */</span>
<span id="L228"><span class="lineNum"> 228</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L229"><span class="lineNum"> 229</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L230"><span class="lineNum"> 230</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L231"><span class="lineNum"> 231</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L232"><span class="lineNum"> 232</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L233"><span class="lineNum"> 233</span> : /* ... */</span>
<span id="L234"><span class="lineNum"> 234</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L235"><span class="lineNum"> 235</span> : /* ... */</span>
<span id="L236"><span class="lineNum"> 236</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L237"><span class="lineNum"> 237</span> : /* ... */</span>
<span id="L238"><span class="lineNum"> 238</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L239"><span class="lineNum"> 239</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L240"><span class="lineNum"> 240</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L241"><span class="lineNum"> 241</span> <span class="tlaUNC tlaBgUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L242"><span class="lineNum"> 242</span> : /* (content generated from line coverage data) */</span>
<span id="L243"><span class="lineNum"> 243</span> <span class="tlaGNC tlaBgGNC"> 24 : /* ... */</span></span>
<span id="L244"><span class="lineNum"> 244</span> : /* ... */</span>
<span id="L245"><span class="lineNum"> 245</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L246"><span class="lineNum"> 246</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L247"><span class="lineNum"> 247</span> : /* ... */</span>
<span id="L248"><span class="lineNum"> 248</span> <span class="tlaGNC tlaBgGNC"> 24 : /* ... */</span></span>
<span id="L249"><span class="lineNum"> 249</span> : /* ... */</span>
<span id="L250"><span class="lineNum"> 250</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L251"><span class="lineNum"> 251</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L252"><span class="lineNum"> 252</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L253"><span class="lineNum"> 253</span> : /* ... */</span>
<span id="L254"><span class="lineNum"> 254</span> : /* ... */</span>
<span id="L255"><span class="lineNum"> 255</span> <span class="tlaGNC tlaBgGNC"> 24 : /* ... */</span></span>
<span id="L256"><span class="lineNum"> 256</span> : /* ... */</span>
<span id="L257"><span class="lineNum"> 257</span> : /* ... */</span>
<span id="L258"><span class="lineNum"> 258</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L259"><span class="lineNum"> 259</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L260"><span class="lineNum"> 260</span> : /* ... */</span>
<span id="L261"><span class="lineNum"> 261</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L262"><span class="lineNum"> 262</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L263"><span class="lineNum"> 263</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L264"><span class="lineNum"> 264</span> : /* ... */</span>
<span id="L265"><span class="lineNum"> 265</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L266"><span class="lineNum"> 266</span> : /* ... */</span>
<span id="L267"><span class="lineNum"> 267</span> : /* ... */</span>
<span id="L268"><span class="lineNum"> 268</span> : /* ... */</span>
<span id="L269"><span class="lineNum"> 269</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L270"><span class="lineNum"> 270</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L271"><span class="lineNum"> 271</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L272"><span class="lineNum"> 272</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L273"><span class="lineNum"> 273</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L274"><span class="lineNum"> 274</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L275"><span class="lineNum"> 275</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L276"><span class="lineNum"> 276</span> : /* ... */</span>
<span id="L277"><span class="lineNum"> 277</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L278"><span class="lineNum"> 278</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L279"><span class="lineNum"> 279</span> <span class="tlaGNC"> 24 : /* ... */</span></span>
<span id="L280"><span class="lineNum"> 280</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L281"><span class="lineNum"> 281</span> <span class="tlaGNC"> 72 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L282"><span class="lineNum"> 282</span> <span class="tlaUNC tlaBgUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L283"><span class="lineNum"> 283</span> : /* ... */</span>
<span id="L284"><span class="lineNum"> 284</span> <span class="tlaGNC tlaBgGNC"> 72 : /* ... */</span></span>
<span id="L285"><span class="lineNum"> 285</span> <span class="tlaGNC"> 72 : /* ... */</span></span>
<span id="L286"><span class="lineNum"> 286</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L287"><span class="lineNum"> 287</span> : /* ... */</span>
<span id="L288"><span class="lineNum"> 288</span> <span class="tlaGNC tlaBgGNC"> 72 : /* ... */</span></span>
<span id="L289"><span class="lineNum"> 289</span> : /* ... */</span>
<span id="L290"><span class="lineNum"> 290</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L291"><span class="lineNum"> 291</span> : /* ... */</span>
<span id="L292"><span class="lineNum"> 292</span> : /* ... */</span>
<span id="L293"><span class="lineNum"> 293</span> : /* ... */</span>
<span id="L294"><span class="lineNum"> 294</span> <span class="tlaGNC tlaBgGNC"> 24 : /* ... */</span></span>
<span id="L295"><span class="lineNum"> 295</span> : /* ... */</span>
<span id="L296"><span class="lineNum"> 296</span> : /* ... */</span>
<span id="L297"><span class="lineNum"> 297</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L298"><span class="lineNum"> 298</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L299"><span class="lineNum"> 299</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L300"><span class="lineNum"> 300</span> : /* ... */</span>
<span id="L301"><span class="lineNum"> 301</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L302"><span class="lineNum"> 302</span> <span class="tlaGNC tlaBgGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L303"><span class="lineNum"> 303</span> : /* ... */</span>
<span id="L304"><span class="lineNum"> 304</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L305"><span class="lineNum"> 305</span> : /* ... */</span>
<span id="L306"><span class="lineNum"> 306</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L307"><span class="lineNum"> 307</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L308"><span class="lineNum"> 308</span> : /* ... */</span>
<span id="L309"><span class="lineNum"> 309</span> : /* ... */</span>
<span id="L310"><span class="lineNum"> 310</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L311"><span class="lineNum"> 311</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L312"><span class="lineNum"> 312</span> : /* ... */</span>
<span id="L313"><span class="lineNum"> 313</span> : /* ... */</span>
<span id="L314"><span class="lineNum"> 314</span> : /* ... */</span>
<span id="L315"><span class="lineNum"> 315</span> : /* ... */</span>
<span id="L316"><span class="lineNum"> 316</span> : /* ... */</span>
<span id="L317"><span class="lineNum"> 317</span> : /* ... */</span>
<span id="L318"><span class="lineNum"> 318</span> : /* ... */</span>
<span id="L319"><span class="lineNum"> 319</span> : /* ... */</span>
<span id="L320"><span class="lineNum"> 320</span> : /* ... */</span>
<span id="L321"><span class="lineNum"> 321</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L322"><span class="lineNum"> 322</span> : /* (content generated from line coverage data) */</span>
<span id="L323"><span class="lineNum"> 323</span> : /* ... */</span>
<span id="L324"><span class="lineNum"> 324</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L325"><span class="lineNum"> 325</span> : /* ... */</span>
<span id="L326"><span class="lineNum"> 326</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L327"><span class="lineNum"> 327</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L328"><span class="lineNum"> 328</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L329"><span class="lineNum"> 329</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L330"><span class="lineNum"> 330</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L331"><span class="lineNum"> 331</span> : /* ... */</span>
<span id="L332"><span class="lineNum"> 332</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L333"><span class="lineNum"> 333</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L334"><span class="lineNum"> 334</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L335"><span class="lineNum"> 335</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L336"><span class="lineNum"> 336</span> : /* ... */</span>
<span id="L337"><span class="lineNum"> 337</span> : /* ... */</span>
<span id="L338"><span class="lineNum"> 338</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L339"><span class="lineNum"> 339</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L340"><span class="lineNum"> 340</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L341"><span class="lineNum"> 341</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L342"><span class="lineNum"> 342</span> <span class="tlaGNC"> 3 : /* (content generated from line coverage data) */</span></span>
<span id="L343"><span class="lineNum"> 343</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L344"><span class="lineNum"> 344</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L345"><span class="lineNum"> 345</span> : /* ... */</span>
<span id="L346"><span class="lineNum"> 346</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L347"><span class="lineNum"> 347</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L348"><span class="lineNum"> 348</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L349"><span class="lineNum"> 349</span> : /* ... */</span>
<span id="L350"><span class="lineNum"> 350</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L351"><span class="lineNum"> 351</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L352"><span class="lineNum"> 352</span> : /* ... */</span>
<span id="L353"><span class="lineNum"> 353</span> : /* ... */</span>
<span id="L354"><span class="lineNum"> 354</span> <span class="tlaGNC tlaBgGNC"> 3 : /* ... */</span></span>
<span id="L355"><span class="lineNum"> 355</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L356"><span class="lineNum"> 356</span> : /* ... */</span>
<span id="L357"><span class="lineNum"> 357</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L358"><span class="lineNum"> 358</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L359"><span class="lineNum"> 359</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L360"><span class="lineNum"> 360</span> : /* ... */</span>
<span id="L361"><span class="lineNum"> 361</span> <span class="tlaGNC tlaBgGNC"> 3 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L362"><span class="lineNum"> 362</span> <span class="tlaGNC"> 3 : /* (content generated from line coverage data) */</span></span>
<span id="L363"><span class="lineNum"> 363</span> : /* ... */</span>
<span id="L364"><span class="lineNum"> 364</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L365"><span class="lineNum"> 365</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L366"><span class="lineNum"> 366</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L367"><span class="lineNum"> 367</span> : /* ... */</span>
<span id="L368"><span class="lineNum"> 368</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L369"><span class="lineNum"> 369</span> <span class="tlaGNC"> 6 : /* ... */</span></span>
<span id="L370"><span class="lineNum"> 370</span> <span class="tlaGNC"> 5 : /* ... */</span></span>
<span id="L371"><span class="lineNum"> 371</span> : /* ... */</span>
<span id="L372"><span class="lineNum"> 372</span> : /* ... */</span>
<span id="L373"><span class="lineNum"> 373</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L374"><span class="lineNum"> 374</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L375"><span class="lineNum"> 375</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L376"><span class="lineNum"> 376</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L377"><span class="lineNum"> 377</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L378"><span class="lineNum"> 378</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L379"><span class="lineNum"> 379</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L380"><span class="lineNum"> 380</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L381"><span class="lineNum"> 381</span> : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span>
<span id="L382"><span class="lineNum"> 382</span> : /* (content generated from line coverage data) */</span>
<span id="L383"><span class="lineNum"> 383</span> : /* ... */</span>
<span id="L384"><span class="lineNum"> 384</span> : /* ... */</span>
<span id="L385"><span class="lineNum"> 385</span> <span class="tlaGNC"> 3 : /* ... */</span></span>
<span id="L386"><span class="lineNum"> 386</span> : /* ... */</span>
<span id="L387"><span class="lineNum"> 387</span> : /* ... */</span>
<span id="L388"><span class="lineNum"> 388</span> : /* ... */</span>
<span id="L389"><span class="lineNum"> 389</span> : /* ... */</span>
<span id="L390"><span class="lineNum"> 390</span> : /* ... */</span>
<span id="L391"><span class="lineNum"> 391</span> : /* ... */</span>
<span id="L392"><span class="lineNum"> 392</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L393"><span class="lineNum"> 393</span> : /* ... */</span>
<span id="L394"><span class="lineNum"> 394</span> : /* ... */</span>
<span id="L395"><span class="lineNum"> 395</span> : /* ... */</span>
<span id="L396"><span class="lineNum"> 396</span> : /* ... */</span>
<span id="L397"><span class="lineNum"> 397</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L398"><span class="lineNum"> 398</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L399"><span class="lineNum"> 399</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L400"><span class="lineNum"> 400</span> : /* ... */</span>
<span id="L401"><span class="lineNum"> 401</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L402"><span class="lineNum"> 402</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L403"><span class="lineNum"> 403</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L404"><span class="lineNum"> 404</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L405"><span class="lineNum"> 405</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L406"><span class="lineNum"> 406</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L407"><span class="lineNum"> 407</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L408"><span class="lineNum"> 408</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L409"><span class="lineNum"> 409</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L410"><span class="lineNum"> 410</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L411"><span class="lineNum"> 411</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L412"><span class="lineNum"> 412</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L413"><span class="lineNum"> 413</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L414"><span class="lineNum"> 414</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L415"><span class="lineNum"> 415</span> : /* ... */</span>
<span id="L416"><span class="lineNum"> 416</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L417"><span class="lineNum"> 417</span> : /* ... */</span>
<span id="L418"><span class="lineNum"> 418</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L419"><span class="lineNum"> 419</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L420"><span class="lineNum"> 420</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L421"><span class="lineNum"> 421</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L422"><span class="lineNum"> 422</span> : /* (content generated from line coverage data) */</span>
<span id="L423"><span class="lineNum"> 423</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L424"><span class="lineNum"> 424</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L425"><span class="lineNum"> 425</span> : /* ... */</span>
<span id="L426"><span class="lineNum"> 426</span> : /* ... */</span>
<span id="L427"><span class="lineNum"> 427</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L428"><span class="lineNum"> 428</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L429"><span class="lineNum"> 429</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L430"><span class="lineNum"> 430</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L431"><span class="lineNum"> 431</span> : /* ... */</span>
<span id="L432"><span class="lineNum"> 432</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L433"><span class="lineNum"> 433</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L434"><span class="lineNum"> 434</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L435"><span class="lineNum"> 435</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L436"><span class="lineNum"> 436</span> : /* ... */</span>
<span id="L437"><span class="lineNum"> 437</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L438"><span class="lineNum"> 438</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L439"><span class="lineNum"> 439</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L440"><span class="lineNum"> 440</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L441"><span class="lineNum"> 441</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L442"><span class="lineNum"> 442</span> : /* (content generated from line coverage data) */</span>
<span id="L443"><span class="lineNum"> 443</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L444"><span class="lineNum"> 444</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L445"><span class="lineNum"> 445</span> : /* ... */</span>
<span id="L446"><span class="lineNum"> 446</span> : /* ... */</span>
<span id="L447"><span class="lineNum"> 447</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L448"><span class="lineNum"> 448</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L449"><span class="lineNum"> 449</span> : /* ... */</span>
<span id="L450"><span class="lineNum"> 450</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L451"><span class="lineNum"> 451</span> : /* ... */</span>
<span id="L452"><span class="lineNum"> 452</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L453"><span class="lineNum"> 453</span> : /* ... */</span>
<span id="L454"><span class="lineNum"> 454</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L455"><span class="lineNum"> 455</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L456"><span class="lineNum"> 456</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L457"><span class="lineNum"> 457</span> : /* ... */</span>
<span id="L458"><span class="lineNum"> 458</span> : /* ... */</span>
<span id="L459"><span class="lineNum"> 459</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L460"><span class="lineNum"> 460</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L461"><span class="lineNum"> 461</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L462"><span class="lineNum"> 462</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L463"><span class="lineNum"> 463</span> : /* ... */</span>
<span id="L464"><span class="lineNum"> 464</span> : /* ... */</span>
<span id="L465"><span class="lineNum"> 465</span> : /* ... */</span>
<span id="L466"><span class="lineNum"> 466</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L467"><span class="lineNum"> 467</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L468"><span class="lineNum"> 468</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L469"><span class="lineNum"> 469</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L470"><span class="lineNum"> 470</span> : /* ... */</span>
<span id="L471"><span class="lineNum"> 471</span> : /* ... */</span>
<span id="L472"><span class="lineNum"> 472</span> : /* ... */</span>
<span id="L473"><span class="lineNum"> 473</span> : /* ... */</span>
<span id="L474"><span class="lineNum"> 474</span> : /* ... */</span>
<span id="L475"><span class="lineNum"> 475</span> : /* ... */</span>
<span id="L476"><span class="lineNum"> 476</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L477"><span class="lineNum"> 477</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L478"><span class="lineNum"> 478</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L479"><span class="lineNum"> 479</span> : /* ... */</span>
<span id="L480"><span class="lineNum"> 480</span> : /* ... */</span>
<span id="L481"><span class="lineNum"> 481</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L482"><span class="lineNum"> 482</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L483"><span class="lineNum"> 483</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L484"><span class="lineNum"> 484</span> : /* ... */</span>
<span id="L485"><span class="lineNum"> 485</span> : /* ... */</span>
<span id="L486"><span class="lineNum"> 486</span> : /* ... */</span>
<span id="L487"><span class="lineNum"> 487</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L488"><span class="lineNum"> 488</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L489"><span class="lineNum"> 489</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L490"><span class="lineNum"> 490</span> : /* ... */</span>
<span id="L491"><span class="lineNum"> 491</span> : /* ... */</span>
<span id="L492"><span class="lineNum"> 492</span> : /* ... */</span>
<span id="L493"><span class="lineNum"> 493</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L494"><span class="lineNum"> 494</span> : /* ... */</span>
<span id="L495"><span class="lineNum"> 495</span> : /* ... */</span>
<span id="L496"><span class="lineNum"> 496</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L497"><span class="lineNum"> 497</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L498"><span class="lineNum"> 498</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L499"><span class="lineNum"> 499</span> : /* ... */</span>
<span id="L500"><span class="lineNum"> 500</span> : /* ... */</span>
<span id="L501"><span class="lineNum"> 501</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L502"><span class="lineNum"> 502</span> <span class="tlaUNC"> 0 : /* (content generated from line coverage data) */</span></span>
<span id="L503"><span class="lineNum"> 503</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L504"><span class="lineNum"> 504</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L505"><span class="lineNum"> 505</span> : /* ... */</span>
<span id="L506"><span class="lineNum"> 506</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L507"><span class="lineNum"> 507</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L508"><span class="lineNum"> 508</span> : /* ... */</span>
<span id="L509"><span class="lineNum"> 509</span> : /* ... */</span>
<span id="L510"><span class="lineNum"> 510</span> : /* ... */</span>
<span id="L511"><span class="lineNum"> 511</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L512"><span class="lineNum"> 512</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L513"><span class="lineNum"> 513</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L514"><span class="lineNum"> 514</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L515"><span class="lineNum"> 515</span> : /* ... */</span>
<span id="L516"><span class="lineNum"> 516</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L517"><span class="lineNum"> 517</span> <span class="tlaUNC"> 0 : /* ... */</span></span>
<span id="L518"><span class="lineNum"> 518</span> : /* ... */</span>
<span id="L519"><span class="lineNum"> 519</span> : /* ... */</span>
<span id="L520"><span class="lineNum"> 520</span> : /* ... */</span>
<span id="L521"><span class="lineNum"> 521</span> <span class="tlaUNC"> 0 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L522"><span class="lineNum"> 522</span> : /* (content generated from line coverage data) */</span>
<span id="L523"><span class="lineNum"> 523</span> : /* ... */</span>
<span id="L524"><span class="lineNum"> 524</span> : /* ... */</span>
<span id="L525"><span class="lineNum"> 525</span> : /* ... */</span>
<span id="L526"><span class="lineNum"> 526</span> : /* ... */</span>
<span id="L527"><span class="lineNum"> 527</span> : /* ... */</span>
<span id="L528"><span class="lineNum"> 528</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L529"><span class="lineNum"> 529</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L530"><span class="lineNum"> 530</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L531"><span class="lineNum"> 531</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L532"><span class="lineNum"> 532</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L533"><span class="lineNum"> 533</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L534"><span class="lineNum"> 534</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L535"><span class="lineNum"> 535</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L536"><span class="lineNum"> 536</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L537"><span class="lineNum"> 537</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L538"><span class="lineNum"> 538</span> : /* ... */</span>
<span id="L539"><span class="lineNum"> 539</span> : /* ... */</span>
<span id="L540"><span class="lineNum"> 540</span> : /* ... */</span>
<span id="L541"><span class="lineNum"> 541</span> <span class="tlaGNC"> 1 : /* /mnt/c/Users/Marcus/Documents/packages/jecs/tools/testkit.luau not found */</span></span>
<span id="L542"><span class="lineNum"> 542</span> <span class="tlaGNC"> 1 : /* (content generated from line coverage data) */</span></span>
<span id="L543"><span class="lineNum"> 543</span> : /* ... */</span>
<span id="L544"><span class="lineNum"> 544</span> : /* ... */</span>
<span id="L545"><span class="lineNum"> 545</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L546"><span class="lineNum"> 546</span> <span class="tlaUNC tlaBgUNC"> 0 : /* ... */</span></span>
<span id="L547"><span class="lineNum"> 547</span> : /* ... */</span>
<span id="L548"><span class="lineNum"> 548</span> : /* ... */</span>
<span id="L549"><span class="lineNum"> 549</span> <span class="tlaGNC tlaBgGNC"> 1 : /* ... */</span></span>
<span id="L550"><span class="lineNum"> 550</span> : /* ... */</span>
<span id="L551"><span class="lineNum"> 551</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L552"><span class="lineNum"> 552</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
<span id="L553"><span class="lineNum"> 553</span> : /* ... */</span>
<span id="L554"><span class="lineNum"> 554</span> <span class="tlaGNC"> 1 : /* ... */</span></span>
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

254
coverage/lifetime_tracker.luau.html vendored Normal file
View file

@ -0,0 +1,254 @@
<html><head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
<style>
body { font-family: monospace; text-align: center; }
#funcTable table { margin: 0 auto; width: auto; max-width: 300px; font-size: 14px; border-collapse: collapse; }
#funcTable th, #funcTable td { padding: 2px 6px; text-align: left; white-space: nowrap; }
#funcTable th { background-color: #ddd; }
#funcTable td:nth-child(2) { text-align: right; min-width: 50px; }
.zero-hits { background-color: #fcc; font-weight: bold; color: red; }
.nonzero-hits { color: green; font-weight: bold; }
.low-hits { background-color: #ffe6b3; }
.high-hits { background-color: #cfc; }
.source-code-table { margin-left: 10px; }th, td { padding: 0px; font-size: 12px; }
table.table { font-size: 14px; border-collapse: collapse; }
table.table th, table.table td { padding: 1px; font-size: 12px; line-height: 1.2; }
table.table tr { height: auto; }
</style></head><body>
<h1 class="text-center">lifetime_tracker.luau Coverage</h1>
<h2>Total Execution Hits: 1</h2>
<h2>Function Coverage Overview: 9.09%</h2>
<button class="btn btn-primary mb-2" type="button" data-bs-toggle="collapse" data-bs-target="#funcTable">Toggle Function Coverage</button>
<div class="collapse show" id="funcTable">
<h2>Function Coverage:</h2><table class="table table-bordered"><thead><tr><th>Function</th><th>Hits</th></tr></thead><tbody>
<tr><td style="padding: 1px; min-width: 24ch;"><main></td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;">print_centered_entity:12</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;">name:26</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;">pad:30</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;">lifetime_tracker_add:36</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;"><anonymous>:48</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;"><anonymous>:62</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;"><anonymous>:89</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;"><anonymous>:135</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;"><anonymous>:164</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 24ch;"><anonymous>:175</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
</tbody></table></div>
<h2>Source Code:</h2><table class="table table-bordered source-code-table "><thead><tr><th>Line</th><th>Hits</th><th>Code</th></tr></thead><tbody>
<tr><td>1</td><td>1</td><td><span class=high-hits>local jecs = require("@jecs")</span></td></tr>
<tr><td>2</td><td>1</td><td><span class=high-hits>local ECS_GENERATION = jecs.ECS_GENERATION</span></td></tr>
<tr><td>3</td><td>1</td><td><span class=high-hits>local ECS_ID = jecs.ECS_ID</span></td></tr>
<tr><td>4</td><td>1</td><td><span class=high-hits>local __ = jecs.Wildcard</span></td></tr>
<tr><td>5</td><td>1</td><td><span class=high-hits>local pair = jecs.pair</span></td></tr>
<tr><td>6</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>7</td><td>1</td><td><span class=high-hits>local prettify = require("@tools/entity_visualiser").prettify</span></td></tr>
<tr><td>8</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>9</td><td>1</td><td><span class=high-hits>local pe = prettify</span></td></tr>
<tr><td>10</td><td>1</td><td><span class=high-hits>local ansi = require("@tools/ansi")</span></td></tr>
<tr><td>11</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>12</td><td>1</td><td><span class=high-hits>function print_centered_entity(entity, width: number)</span></td></tr>
<tr><td>13</td><td>0</td><td><span class=zero-hits>local entity_str = tostring(entity)</span></td></tr>
<tr><td>14</td><td>0</td><td><span class=zero-hits>local entity_length = #entity_str</span></td></tr>
<tr><td>15</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>16</td><td>0</td><td><span class=zero-hits>local padding_total = width - 2 - entity_length</span></td></tr>
<tr><td>17</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>18</td><td>0</td><td><span class=zero-hits>local padding_left = math.floor(padding_total / 2)</span></td></tr>
<tr><td>19</td><td>0</td><td><span class=zero-hits>local padding_right = padding_total - padding_left</span></td></tr>
<tr><td>20</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>21</td><td>0</td><td><span class=zero-hits>local centered_str = string.rep(" ", padding_left) .. entity_str .. string.rep(" ", padding_right)</span></td></tr>
<tr><td>22</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>23</td><td>0</td><td><span class=zero-hits>print("|" .. centered_str .. "|")</span></td></tr>
<tr><td>24</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>25</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>26</td><td>1</td><td><span class=high-hits>local function name(world, e)</span></td></tr>
<tr><td>27</td><td>0</td><td><span class=zero-hits>return world:get(world, e, jecs.Name) or pe(e)</span></td></tr>
<tr><td>28</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>29</td><td>1</td><td><span class=high-hits>local padding_enabled = false</span></td></tr>
<tr><td>30</td><td>1</td><td><span class=high-hits>local function pad()</span></td></tr>
<tr><td>31</td><td>0</td><td><span class=zero-hits>if padding_enabled then</span></td></tr>
<tr><td>32</td><td>0</td><td><span class=zero-hits>print("")</span></td></tr>
<tr><td>33</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>34</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>35</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>36</td><td>1</td><td><span class=high-hits>local function lifetime_tracker_add(world: jecs.World, opt)</span></td></tr>
<tr><td>37</td><td>0</td><td><span class=zero-hits>local entity_index = world.entity_index</span></td></tr>
<tr><td>38</td><td>0</td><td><span class=zero-hits>local dense_array = entity_index.dense_array</span></td></tr>
<tr><td>39</td><td>0</td><td><span class=zero-hits>local component_index = world.component_index</span></td></tr>
<tr><td>40</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>41</td><td>0</td><td><span class=zero-hits>local ENTITY_RANGE = (jecs.Rest :: any) + 1</span></td></tr>
<tr><td>42</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>43</td><td>0</td><td><span class=zero-hits>local w = setmetatable({}, { __index = world })</span></td></tr>
<tr><td>44</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>45</td><td>0</td><td><span class=zero-hits>padding_enabled = opt.padding_enabled</span></td></tr>
<tr><td>46</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>47</td><td>0</td><td><span class=zero-hits>local world_entity = world.entity</span></td></tr>
<tr><td>48</td><td>0</td><td><span class=zero-hits>w.entity = function(self, entity)</span></td></tr>
<tr><td>49</td><td>0</td><td><span class=zero-hits>if entity then</span></td></tr>
<tr><td>50</td><td>0</td><td><span class=zero-hits>return world_entity(world, entity)</span></td></tr>
<tr><td>51</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>52</td><td>0</td><td><span class=zero-hits>local will_recycle = entity_index.max_id ~= entity_index.alive_count</span></td></tr>
<tr><td>53</td><td>0</td><td><span class=zero-hits>local e = world_entity(world)</span></td></tr>
<tr><td>54</td><td>0</td><td><span class=zero-hits>if will_recycle then</span></td></tr>
<tr><td>55</td><td>0</td><td><span class=zero-hits>print(`*recycled {pe(e)}`)</span></td></tr>
<tr><td>56</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>57</td><td>0</td><td><span class=zero-hits>print(`*created {pe(e)}`)</span></td></tr>
<tr><td>58</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>59</td><td>0</td><td><span class=zero-hits>pad()</span></td></tr>
<tr><td>60</td><td>0</td><td><span class=zero-hits>return e</span></td></tr>
<tr><td>61</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>62</td><td>0</td><td><span class=zero-hits>w.print_entity_index = function(self)</span></td></tr>
<tr><td>63</td><td>0</td><td><span class=zero-hits>local max_id = entity_index.max_id</span></td></tr>
<tr><td>64</td><td>0</td><td><span class=zero-hits>local alive_count = entity_index.alive_count</span></td></tr>
<tr><td>65</td><td>0</td><td><span class=zero-hits>local alive = table.move(dense_array, 1 + jecs.Rest :: any, alive_count, 1, {})</span></td></tr>
<tr><td>66</td><td>0</td><td><span class=zero-hits>local dead = table.move(dense_array, alive_count + 1, max_id, 1, {})</span></td></tr>
<tr><td>67</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>68</td><td>0</td><td><span class=zero-hits>local sep = "|--------|"</span></td></tr>
<tr><td>69</td><td>0</td><td><span class=zero-hits>if #alive > 0 then</span></td></tr>
<tr><td>70</td><td>0</td><td><span class=zero-hits>print("|-alive--|")</span></td></tr>
<tr><td>71</td><td>0</td><td><span class=zero-hits>for i = 1, #alive do</span></td></tr>
<tr><td>72</td><td>0</td><td><span class=zero-hits>local e = pe(alive[i])</span></td></tr>
<tr><td>73</td><td>0</td><td><span class=zero-hits>print_centered_entity(e, 32)</span></td></tr>
<tr><td>74</td><td>0</td><td><span class=zero-hits>print(sep)</span></td></tr>
<tr><td>75</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>76</td><td>0</td><td><span class=zero-hits>print("\n")</span></td></tr>
<tr><td>77</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>78</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>79</td><td>0</td><td><span class=zero-hits>if #dead > 0 then</span></td></tr>
<tr><td>80</td><td>0</td><td><span class=zero-hits>print("|--dead--|")</span></td></tr>
<tr><td>81</td><td>0</td><td><span class=zero-hits>for i = 1, #dead do</span></td></tr>
<tr><td>82</td><td>0</td><td><span class=zero-hits>print_centered_entity(pe(dead[i]), 32)</span></td></tr>
<tr><td>83</td><td>0</td><td><span class=zero-hits>print(sep)</span></td></tr>
<tr><td>84</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>85</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>86</td><td>0</td><td><span class=zero-hits>pad()</span></td></tr>
<tr><td>87</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>88</td><td>0</td><td><span class=zero-hits>local timelines = {}</span></td></tr>
<tr><td>89</td><td>0</td><td><span class=zero-hits>w.print_snapshot = function(self)</span></td></tr>
<tr><td>90</td><td>0</td><td><span class=zero-hits>local timeline = #timelines + 1</span></td></tr>
<tr><td>91</td><td>0</td><td><span class=zero-hits>local entity_column_width = 10</span></td></tr>
<tr><td>92</td><td>0</td><td><span class=zero-hits>local status_column_width = 8</span></td></tr>
<tr><td>93</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>94</td><td>0</td><td><span class=zero-hits>local header = string.format("| %-" .. entity_column_width .. "s |", "Entity")</span></td></tr>
<tr><td>95</td><td>0</td><td><span class=zero-hits>for i = 1, timeline do</span></td></tr>
<tr><td>96</td><td>0</td><td><span class=zero-hits>header = header .. string.format(" %-" .. status_column_width .. "s |", string.format("T%d", i))</span></td></tr>
<tr><td>97</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>98</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>99</td><td>0</td><td><span class=zero-hits>local max_id = entity_index.max_id</span></td></tr>
<tr><td>100</td><td>0</td><td><span class=zero-hits>local alive_count = entity_index.alive_count</span></td></tr>
<tr><td>101</td><td>0</td><td><span class=zero-hits>local alive = table.move(dense_array, 1 + jecs.Rest :: any, alive_count, 1, {})</span></td></tr>
<tr><td>102</td><td>0</td><td><span class=zero-hits>local dead = table.move(dense_array, alive_count + 1, max_id, 1, {})</span></td></tr>
<tr><td>103</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>104</td><td>0</td><td><span class=zero-hits>local data = {}</span></td></tr>
<tr><td>105</td><td>0</td><td><span class=zero-hits>print("-------------------------------------------------------------------")</span></td></tr>
<tr><td>106</td><td>0</td><td><span class=zero-hits>print(header)</span></td></tr>
<tr><td>107</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>108</td><td><span class='text-muted'>N/A</span></td><td>-- Store the snapshot data for this timeline</td>></tr>
<tr><td>109</td><td>0</td><td><span class=zero-hits>for i = ENTITY_RANGE, max_id do</span></td></tr>
<tr><td>110</td><td>0</td><td><span class=zero-hits>if dense_array[i] then</span></td></tr>
<tr><td>111</td><td>0</td><td><span class=zero-hits>local entity = dense_array[i]</span></td></tr>
<tr><td>112</td><td>0</td><td><span class=zero-hits>local id = ECS_ID(entity)</span></td></tr>
<tr><td>113</td><td>0</td><td><span class=zero-hits>local status = "alive"</span></td></tr>
<tr><td>114</td><td>0</td><td><span class=zero-hits>if not world:contains(entity) then</span></td></tr>
<tr><td>115</td><td>0</td><td><span class=zero-hits>status = "dead"</span></td></tr>
<tr><td>116</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>117</td><td>0</td><td><span class=zero-hits>data[id] = status</span></td></tr>
<tr><td>118</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>119</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>120</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>121</td><td>0</td><td><span class=zero-hits>table.insert(timelines, data)</span></td></tr>
<tr><td>122</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>123</td><td><span class='text-muted'>N/A</span></td><td>-- Create a table to hold entity data for sorting</td>></tr>
<tr><td>124</td><td>0</td><td><span class=zero-hits>local entities = {}</span></td></tr>
<tr><td>125</td><td>0</td><td><span class=zero-hits>for i = ENTITY_RANGE, max_id do</span></td></tr>
<tr><td>126</td><td>0</td><td><span class=zero-hits>if dense_array[i] then</span></td></tr>
<tr><td>127</td><td>0</td><td><span class=zero-hits>local entity = dense_array[i]</span></td></tr>
<tr><td>128</td><td>0</td><td><span class=zero-hits>local id = ECS_ID(entity)</span></td></tr>
<tr><td>129</td><td><span class='text-muted'>N/A</span></td><td>-- Push entity and id into the new `entities` table</td>></tr>
<tr><td>130</td><td>0</td><td><span class=zero-hits>table.insert(entities, { entity = entity, id = id })</span></td></tr>
<tr><td>131</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>132</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>133</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>134</td><td><span class='text-muted'>N/A</span></td><td>-- Sort the entities by ECS_ID</td>></tr>
<tr><td>135</td><td>0</td><td><span class=zero-hits>table.sort(entities, function(a, b)</span></td></tr>
<tr><td>136</td><td>0</td><td><span class=zero-hits>return a.id < b.id</span></td></tr>
<tr><td>137</td><td><span class='text-muted'>N/A</span></td><td>end)</td>></tr>
<tr><td>138</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>139</td><td><span class='text-muted'>N/A</span></td><td>-- Print the sorted rows</td>></tr>
<tr><td>140</td><td>0</td><td><span class=zero-hits>for _, entity_data in ipairs(entities) do</span></td></tr>
<tr><td>141</td><td>0</td><td><span class=zero-hits>local entity = entity_data.entity</span></td></tr>
<tr><td>142</td><td>0</td><td><span class=zero-hits>local id = entity_data.id</span></td></tr>
<tr><td>143</td><td>0</td><td><span class=zero-hits>local status = "alive"</span></td></tr>
<tr><td>144</td><td>0</td><td><span class=zero-hits>if id > alive_count then</span></td></tr>
<tr><td>145</td><td>0</td><td><span class=zero-hits>status = "dead"</span></td></tr>
<tr><td>146</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>147</td><td>0</td><td><span class=zero-hits>local row = string.format("| %-" .. entity_column_width .. "s |", pe(entity))</span></td></tr>
<tr><td>148</td><td>0</td><td><span class=zero-hits>for j = 1, timeline do</span></td></tr>
<tr><td>149</td><td>0</td><td><span class=zero-hits>local timeline_data = timelines[j]</span></td></tr>
<tr><td>150</td><td>0</td><td><span class=zero-hits>local entity_data = timeline_data[id]</span></td></tr>
<tr><td>151</td><td>0</td><td><span class=zero-hits>if entity_data then</span></td></tr>
<tr><td>152</td><td>0</td><td><span class=zero-hits>row = row .. string.format(" %-" .. status_column_width .. "s |", entity_data)</span></td></tr>
<tr><td>153</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>154</td><td>0</td><td><span class=zero-hits>row = row .. string.format(" %-" .. status_column_width .. "s |", "-")</span></td></tr>
<tr><td>155</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>156</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>157</td><td>0</td><td><span class=zero-hits>print(row)</span></td></tr>
<tr><td>158</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>159</td><td>0</td><td><span class=zero-hits>print("-------------------------------------------------------------------")</span></td></tr>
<tr><td>160</td><td>0</td><td><span class=zero-hits>pad()</span></td></tr>
<tr><td>161</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>162</td><td>0</td><td><span class=zero-hits>local world_add = world.add</span></td></tr>
<tr><td>163</td><td>0</td><td><span class=zero-hits>local relations = {}</span></td></tr>
<tr><td>164</td><td>0</td><td><span class=zero-hits>w.add = function(self, entity: any, component: any)</span></td></tr>
<tr><td>165</td><td>0</td><td><span class=zero-hits>world_add(world, entity, component)</span></td></tr>
<tr><td>166</td><td>0</td><td><span class=zero-hits>if jecs.IS_PAIR(component) then</span></td></tr>
<tr><td>167</td><td>0</td><td><span class=zero-hits>local relation = jecs.pair_first(world, component)</span></td></tr>
<tr><td>168</td><td>0</td><td><span class=zero-hits>local target = jecs.pair_second(world, component)</span></td></tr>
<tr><td>169</td><td>0</td><td><span class=zero-hits>print(`*added ({pe(relation)}, {pe(target)}) to {pe(entity)}`)</span></td></tr>
<tr><td>170</td><td>0</td><td><span class=zero-hits>pad()</span></td></tr>
<tr><td>171</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>172</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>173</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>174</td><td>0</td><td><span class=zero-hits>local world_delete = world.delete</span></td></tr>
<tr><td>175</td><td>0</td><td><span class=zero-hits>w.delete = function(self, e)</span></td></tr>
<tr><td>176</td><td>0</td><td><span class=zero-hits>world_delete(world, e)</span></td></tr>
<tr><td>177</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>178</td><td>0</td><td><span class=zero-hits>local idr_t = component_index[pair(__, e)]</span></td></tr>
<tr><td>179</td><td>0</td><td><span class=zero-hits>if idr_t then</span></td></tr>
<tr><td>180</td><td>0</td><td><span class=zero-hits>for archetype_id in idr_t.cache do</span></td></tr>
<tr><td>181</td><td>0</td><td><span class=zero-hits>local archetype = world.archetypes[archetype_id]</span></td></tr>
<tr><td>182</td><td>0</td><td><span class=zero-hits>for _, id in archetype.types do</span></td></tr>
<tr><td>183</td><td>0</td><td><span class=zero-hits>if not jecs.IS_PAIR(id) then</span></td></tr>
<tr><td>184</td><td>0</td><td><span class=zero-hits>continue</span></td></tr>
<tr><td>185</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>186</td><td>0</td><td><span class=zero-hits>local object = jecs.pair_second(world, id)</span></td></tr>
<tr><td>187</td><td>0</td><td><span class=zero-hits>if object ~= e then</span></td></tr>
<tr><td>188</td><td>0</td><td><span class=zero-hits>continue</span></td></tr>
<tr><td>189</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>190</td><td>0</td><td><span class=zero-hits>local id_record = component_index[id]</span></td></tr>
<tr><td>191</td><td>0</td><td><span class=zero-hits>local flags = id_record.flags</span></td></tr>
<tr><td>192</td><td>0</td><td><span class=zero-hits>local flags_delete_mask: number = bit32.band(flags, jecs.ECS_ID_DELETE)</span></td></tr>
<tr><td>193</td><td>0</td><td><span class=zero-hits>if flags_delete_mask ~= 0 then</span></td></tr>
<tr><td>194</td><td>0</td><td><span class=zero-hits>for _, entity in archetype.entities do</span></td></tr>
<tr><td>195</td><td>0</td><td><span class=zero-hits>print(`*deleted dependant {pe(entity)} of {pe(e)}`)</span></td></tr>
<tr><td>196</td><td>0</td><td><span class=zero-hits>pad()</span></td></tr>
<tr><td>197</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>198</td><td>0</td><td><span class=zero-hits>break</span></td></tr>
<tr><td>199</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>200</td><td>0</td><td><span class=zero-hits>for _, entity in archetype.entities do</span></td></tr>
<tr><td>201</td><td>0</td><td><span class=zero-hits>print(</span></td></tr>
<tr><td>202</td><td>0</td><td><span class=zero-hits>`*removed dependency ({pe(jecs.pair_first(world, id))}, {pe(object)}) from {pe(entity)}`</span></td></tr>
<tr><td>203</td><td>0</td><td><span class=zero-hits>)</span></td></tr>
<tr><td>204</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>205</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>206</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>207</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>208</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>209</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>210</td><td>0</td><td><span class=zero-hits>print(`*deleted {pe(e)}`)</span></td></tr>
<tr><td>211</td><td>0</td><td><span class=zero-hits>pad()</span></td></tr>
<tr><td>212</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>213</td><td>0</td><td><span class=zero-hits>return w</span></td></tr>
<tr><td>214</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>215</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>216</td><td>1</td><td><span class=high-hits>return lifetime_tracker_add</span></td></tr>
</tbody></table></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

617
coverage/testkit.luau.html vendored Normal file
View file

@ -0,0 +1,617 @@
<html><head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
<style>
body { font-family: monospace; text-align: center; }
#funcTable table { margin: 0 auto; width: auto; max-width: 300px; font-size: 14px; border-collapse: collapse; }
#funcTable th, #funcTable td { padding: 2px 6px; text-align: left; white-space: nowrap; }
#funcTable th { background-color: #ddd; }
#funcTable td:nth-child(2) { text-align: right; min-width: 50px; }
.zero-hits { background-color: #fcc; font-weight: bold; color: red; }
.nonzero-hits { color: green; font-weight: bold; }
.low-hits { background-color: #ffe6b3; }
.high-hits { background-color: #cfc; }
.source-code-table { margin-left: 10px; }th, td { padding: 0px; font-size: 12px; }
table.table { font-size: 14px; border-collapse: collapse; }
table.table th, table.table td { padding: 1px; font-size: 12px; line-height: 1.2; }
table.table tr { height: auto; }
</style></head><body>
<h1 class="text-center">testkit.luau Coverage</h1>
<h2>Total Execution Hits: 1826</h2>
<h2>Function Coverage Overview: 64.52%</h2>
<button class="btn btn-primary mb-2" type="button" data-bs-toggle="collapse" data-bs-target="#funcTable">Toggle Function Coverage</button>
<div class="collapse show" id="funcTable">
<h2>Function Coverage:</h2><table class="table table-bordered"><thead><tr><th>Function</th><th>Hits</th></tr></thead><tbody>
<tr><td style="padding: 1px; min-width: 22ch;"><main></td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">white_underline:11</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">white:15</td><td style="padding: 1px; color: green; font-weight: bold;">24</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">green:19</td><td style="padding: 1px; color: green; font-weight: bold;">77</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">red:23</td><td style="padding: 1px; color: green; font-weight: bold;">146</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">yellow:27</td><td style="padding: 1px; color: green; font-weight: bold;">76</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">red_highlight:31</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">green_highlight:35</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">gray:39</td><td style="padding: 1px; color: green; font-weight: bold;">84</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">orange:43</td><td style="padding: 1px; color: green; font-weight: bold;">73</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">convert_units:48</td><td style="padding: 1px; color: green; font-weight: bold;">6</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">output_test_result:131</td><td style="padding: 1px; color: green; font-weight: bold;">24</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">CASE:169</td><td style="padding: 1px; color: green; font-weight: bold;">73</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">CHECK_EXPECT_ERR:183</td><td style="padding: 1px; color: green; font-weight: bold;">9</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">CHECK:201</td><td style="padding: 1px; color: green; font-weight: bold;">1195</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">TEST:224</td><td style="padding: 1px; color: green; font-weight: bold;">24</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">FOCUS:237</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">FINISH:248</td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;"><anonymous>:264</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">SKIP:314</td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">START:330</td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">BENCH:342</td><td style="padding: 1px; color: green; font-weight: bold;">3</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;"><anonymous>:354</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">round:372</td><td style="padding: 1px; color: green; font-weight: bold;">6</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">print2:396</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">tos:401</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">shallow_eq:480</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">deep_eq:500</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">test:533</td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">benchmark:545</td><td style="padding: 1px; color: green; font-weight: bold;">1</td></tr>
<tr><td style="padding: 1px; min-width: 22ch;">disable_formatting:549</td><td style="padding: 1px; color: red; font-weight: bold;">0</td></tr>
</tbody></table></div>
<h2>Source Code:</h2><table class="table table-bordered source-code-table "><thead><tr><th>Line</th><th>Hits</th><th>Code</th></tr></thead><tbody>
<tr><td>1</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>2</td><td><span class='text-muted'>N/A</span></td><td>-- testkit.luau</td>></tr>
<tr><td>3</td><td><span class='text-muted'>N/A</span></td><td>-- v0.7.3</td>></tr>
<tr><td>4</td><td><span class='text-muted'>N/A</span></td><td>-- MIT License</td>></tr>
<tr><td>5</td><td><span class='text-muted'>N/A</span></td><td>-- Copyright (c) 2022 centau</td>></tr>
<tr><td>6</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>7</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>8</td><td>1</td><td><span class=low-hits>local disable_ansi = false</span></td></tr>
<tr><td>9</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>10</td><td>1</td><td><span class=low-hits>local color = {</span></td></tr>
<tr><td>11</td><td>1</td><td><span class=low-hits>white_underline = function(s: string): string</span></td></tr>
<tr><td>12</td><td>0</td><td><span class=zero-hits>return if disable_ansi then s else `\27[1;4m{s}\27[0m`</span></td></tr>
<tr><td>13</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>14</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>15</td><td>1</td><td><span class=low-hits>white = function(s: string): string</span></td></tr>
<tr><td>16</td><td>24</td><td><span class=low-hits>return if disable_ansi then s else `\27[37;1m{s}\27[0m`</span></td></tr>
<tr><td>17</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>18</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>19</td><td>1</td><td><span class=low-hits>green = function(s: string): string</span></td></tr>
<tr><td>20</td><td>77</td><td><span class=low-hits>return if disable_ansi then s else `\27[32;1m{s}\27[0m`</span></td></tr>
<tr><td>21</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>22</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>23</td><td>1</td><td><span class=low-hits>red = function(s: string): string</span></td></tr>
<tr><td>24</td><td>146</td><td><span class=low-hits>return if disable_ansi then s else `\27[31;1m{s}\27[0m`</span></td></tr>
<tr><td>25</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>26</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>27</td><td>1</td><td><span class=low-hits>yellow = function(s: string): string</span></td></tr>
<tr><td>28</td><td>76</td><td><span class=low-hits>return if disable_ansi then s else `\27[33;1m{s}\27[0m`</span></td></tr>
<tr><td>29</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>30</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>31</td><td>1</td><td><span class=low-hits>red_highlight = function(s: string): string</span></td></tr>
<tr><td>32</td><td>0</td><td><span class=zero-hits>return if disable_ansi then s else `\27[41;1;30m{s}\27[0m`</span></td></tr>
<tr><td>33</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>34</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>35</td><td>1</td><td><span class=low-hits>green_highlight = function(s: string): string</span></td></tr>
<tr><td>36</td><td>0</td><td><span class=zero-hits>return if disable_ansi then s else `\27[42;1;30m{s}\27[0m`</span></td></tr>
<tr><td>37</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>38</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>39</td><td>1</td><td><span class=low-hits>gray = function(s: string): string</span></td></tr>
<tr><td>40</td><td>84</td><td><span class=low-hits>return if disable_ansi then s else `\27[38;1m{s}\27[0m`</span></td></tr>
<tr><td>41</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>42</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>43</td><td>1</td><td><span class=low-hits>orange = function(s: string): string</span></td></tr>
<tr><td>44</td><td>73</td><td><span class=low-hits>return if disable_ansi then s else `\27[38;5;208m{s}\27[0m`</span></td></tr>
<tr><td>45</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>46</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>47</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>48</td><td>1</td><td><span class=low-hits>local function convert_units(unit: string, value: number): (number, string)</span></td></tr>
<tr><td>49</td><td>6</td><td><span class=low-hits>local sign = math.sign(value)</span></td></tr>
<tr><td>50</td><td>6</td><td><span class=low-hits>value = math.abs(value)</span></td></tr>
<tr><td>51</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>52</td><td>6</td><td><span class=low-hits>local prefix_colors = {</span></td></tr>
<tr><td>53</td><td>6</td><td><span class=low-hits>[4] = color.red,</span></td></tr>
<tr><td>54</td><td>6</td><td><span class=low-hits>[3] = color.red,</span></td></tr>
<tr><td>55</td><td>6</td><td><span class=low-hits>[2] = color.yellow,</span></td></tr>
<tr><td>56</td><td>6</td><td><span class=low-hits>[1] = color.yellow,</span></td></tr>
<tr><td>57</td><td>6</td><td><span class=low-hits>[0] = color.green,</span></td></tr>
<tr><td>58</td><td>6</td><td><span class=low-hits>[-1] = color.red,</span></td></tr>
<tr><td>59</td><td>6</td><td><span class=low-hits>[-2] = color.yellow,</span></td></tr>
<tr><td>60</td><td>6</td><td><span class=low-hits>[-3] = color.green,</span></td></tr>
<tr><td>61</td><td>6</td><td><span class=low-hits>[-4] = color.red,</span></td></tr>
<tr><td>62</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>63</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>64</td><td>6</td><td><span class=low-hits>local prefixes = {</span></td></tr>
<tr><td>65</td><td>6</td><td><span class=low-hits>[4] = "T",</span></td></tr>
<tr><td>66</td><td>6</td><td><span class=low-hits>[3] = "G",</span></td></tr>
<tr><td>67</td><td>6</td><td><span class=low-hits>[2] = "M",</span></td></tr>
<tr><td>68</td><td>6</td><td><span class=low-hits>[1] = "k",</span></td></tr>
<tr><td>69</td><td>6</td><td><span class=low-hits>[0] = " ",</span></td></tr>
<tr><td>70</td><td>6</td><td><span class=low-hits>[-1] = "m",</span></td></tr>
<tr><td>71</td><td>6</td><td><span class=low-hits>[-2] = "u",</span></td></tr>
<tr><td>72</td><td>6</td><td><span class=low-hits>[-3] = "n",</span></td></tr>
<tr><td>73</td><td>6</td><td><span class=low-hits>[-4] = "p",</span></td></tr>
<tr><td>74</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>75</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>76</td><td>6</td><td><span class=low-hits>local order = 0</span></td></tr>
<tr><td>77</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>78</td><td>7</td><td><span class=low-hits>while value >= 1000 do</span></td></tr>
<tr><td>79</td><td>1</td><td><span class=low-hits>order += 1</span></td></tr>
<tr><td>80</td><td>1</td><td><span class=low-hits>value /= 1000</span></td></tr>
<tr><td>81</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>82</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>83</td><td>11</td><td><span class=low-hits>while value ~= 0 and value < 1 do</span></td></tr>
<tr><td>84</td><td>7</td><td><span class=low-hits>order -= 1</span></td></tr>
<tr><td>85</td><td>7</td><td><span class=low-hits>value *= 1000</span></td></tr>
<tr><td>86</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>87</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>88</td><td>6</td><td><span class=low-hits>if value >= 100 then</span></td></tr>
<tr><td>89</td><td>1</td><td><span class=low-hits>value = math.floor(value)</span></td></tr>
<tr><td>90</td><td>5</td><td><span class=low-hits>elseif value >= 10 then</span></td></tr>
<tr><td>91</td><td>2</td><td><span class=low-hits>value = math.floor(value * 1e1) / 1e1</span></td></tr>
<tr><td>92</td><td>3</td><td><span class=low-hits>elseif value >= 1 then</span></td></tr>
<tr><td>93</td><td>1</td><td><span class=low-hits>value = math.floor(value * 1e2) / 1e2</span></td></tr>
<tr><td>94</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>95</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>96</td><td>6</td><td><span class=low-hits>return value * sign, prefix_colors[order](prefixes[order] .. unit)</span></td></tr>
<tr><td>97</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>98</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>99</td><td>1</td><td><span class=low-hits>local WALL = color.gray("│")</span></td></tr>
<tr><td>100</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>101</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>102</td><td><span class='text-muted'>N/A</span></td><td>-- Testing</td>></tr>
<tr><td>103</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>104</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>105</td><td>0</td><td><span class=zero-hits>type Test = {</span></td></tr>
<tr><td>106</td><td>0</td><td><span class=zero-hits>name: string,</span></td></tr>
<tr><td>107</td><td>0</td><td><span class=zero-hits>case: Case?,</span></td></tr>
<tr><td>108</td><td>0</td><td><span class=zero-hits>cases: { Case },</span></td></tr>
<tr><td>109</td><td>0</td><td><span class=zero-hits>duration: number,</span></td></tr>
<tr><td>110</td><td>0</td><td><span class=zero-hits>error: {</span></td></tr>
<tr><td>111</td><td>0</td><td><span class=zero-hits>message: string,</span></td></tr>
<tr><td>112</td><td>0</td><td><span class=zero-hits>trace: string,</span></td></tr>
<tr><td>113</td><td>0</td><td><span class=zero-hits>}?,</span></td></tr>
<tr><td>114</td><td>0</td><td><span class=zero-hits>focus: boolean,</span></td></tr>
<tr><td>115</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>116</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>117</td><td>0</td><td><span class=zero-hits>type Case = {</span></td></tr>
<tr><td>118</td><td>0</td><td><span class=zero-hits>name: string,</span></td></tr>
<tr><td>119</td><td>0</td><td><span class=zero-hits>result: number,</span></td></tr>
<tr><td>120</td><td>0</td><td><span class=zero-hits>line: number?,</span></td></tr>
<tr><td>121</td><td>0</td><td><span class=zero-hits>focus: boolean,</span></td></tr>
<tr><td>122</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>123</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>124</td><td>1</td><td><span class=low-hits>local PASS, FAIL, NONE, ERROR, SKIPPED = 1, 2, 3, 4, 5</span></td></tr>
<tr><td>125</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>126</td><td>1</td><td><span class=low-hits>local check_for_focused = false</span></td></tr>
<tr><td>127</td><td>1</td><td><span class=low-hits>local skip = false</span></td></tr>
<tr><td>128</td><td>1</td><td><span class=low-hits>local test: Test?</span></td></tr>
<tr><td>129</td><td>1</td><td><span class=low-hits>local tests: { Test } = {}</span></td></tr>
<tr><td>130</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>131</td><td>1</td><td><span class=low-hits>local function output_test_result(test: Test)</span></td></tr>
<tr><td>132</td><td>24</td><td><span class=low-hits>if check_for_focused then</span></td></tr>
<tr><td>133</td><td>0</td><td><span class=zero-hits>local any_focused = test.focus</span></td></tr>
<tr><td>134</td><td>0</td><td><span class=zero-hits>for _, case in test.cases do</span></td></tr>
<tr><td>135</td><td>0</td><td><span class=zero-hits>any_focused = any_focused or case.focus</span></td></tr>
<tr><td>136</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>137</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>138</td><td>0</td><td><span class=zero-hits>if not any_focused then</span></td></tr>
<tr><td>139</td><td>0</td><td><span class=zero-hits>return</span></td></tr>
<tr><td>140</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>141</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>142</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>143</td><td>24</td><td><span class=low-hits>print(color.white(test.name))</span></td></tr>
<tr><td>144</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>145</td><td>24</td><td><span class=low-hits>for _, case in test.cases do</span></td></tr>
<tr><td>146</td><td>73</td><td><span class=low-hits>local status = ({</span></td></tr>
<tr><td>147</td><td>73</td><td><span class=low-hits>[PASS] = color.green("PASS"),</span></td></tr>
<tr><td>148</td><td>73</td><td><span class=low-hits>[FAIL] = color.red("FAIL"),</span></td></tr>
<tr><td>149</td><td>73</td><td><span class=low-hits>[NONE] = color.orange("NONE"),</span></td></tr>
<tr><td>150</td><td>73</td><td><span class=low-hits>[ERROR] = color.red("FAIL"),</span></td></tr>
<tr><td>151</td><td>73</td><td><span class=low-hits>[SKIPPED] = color.yellow("SKIP"),</span></td></tr>
<tr><td>152</td><td>73</td><td><span class=low-hits>})[case.result]</span></td></tr>
<tr><td>153</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>154</td><td>73</td><td><span class=low-hits>local line = case.result == FAIL and color.red(`{case.line}:`) or ""</span></td></tr>
<tr><td>155</td><td>73</td><td><span class=low-hits>if check_for_focused and case.focus == false and test.focus == false then</span></td></tr>
<tr><td>156</td><td>0</td><td><span class=zero-hits>continue</span></td></tr>
<tr><td>157</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>158</td><td>73</td><td><span class=low-hits>print(`{status}{WALL} {line}{color.gray(case.name)}`)</span></td></tr>
<tr><td>159</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>160</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>161</td><td>24</td><td><span class=low-hits>if test.error then</span></td></tr>
<tr><td>162</td><td>0</td><td><span class=zero-hits>print(color.gray("error: ") .. color.red(test.error.message))</span></td></tr>
<tr><td>163</td><td>0</td><td><span class=zero-hits>print(color.gray("trace: ") .. color.red(test.error.trace))</span></td></tr>
<tr><td>164</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>165</td><td>24</td><td><span class=low-hits>print()</span></td></tr>
<tr><td>166</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>167</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>168</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>169</td><td>1</td><td><span class=low-hits>local function CASE(name: string)</span></td></tr>
<tr><td>170</td><td>73</td><td><span class=low-hits>skip = false</span></td></tr>
<tr><td>171</td><td>73</td><td><span class=low-hits>assert(test, "no active test")</span></td></tr>
<tr><td>172</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>173</td><td>73</td><td><span class=low-hits>local case = {</span></td></tr>
<tr><td>174</td><td>73</td><td><span class=low-hits>name = name,</span></td></tr>
<tr><td>175</td><td>73</td><td><span class=low-hits>result = NONE,</span></td></tr>
<tr><td>176</td><td>73</td><td><span class=low-hits>focus = false,</span></td></tr>
<tr><td>177</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>178</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>179</td><td>73</td><td><span class=low-hits>test.case = case</span></td></tr>
<tr><td>180</td><td>73</td><td><span class=low-hits>table.insert(test.cases, case)</span></td></tr>
<tr><td>181</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>182</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>183</td><td>1</td><td><span class=low-hits>local function CHECK_EXPECT_ERR(fn, ...)</span></td></tr>
<tr><td>184</td><td>9</td><td><span class=low-hits>assert(test, "no active test")</span></td></tr>
<tr><td>185</td><td>9</td><td><span class=low-hits>local case = test.case</span></td></tr>
<tr><td>186</td><td>9</td><td><span class=low-hits>if not case then</span></td></tr>
<tr><td>187</td><td>0</td><td><span class=zero-hits>CASE("")</span></td></tr>
<tr><td>188</td><td>0</td><td><span class=zero-hits>case = test.case</span></td></tr>
<tr><td>189</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>190</td><td>9</td><td><span class=low-hits>assert(case, "no active case")</span></td></tr>
<tr><td>191</td><td>9</td><td><span class=low-hits>if case.result ~= FAIL then</span></td></tr>
<tr><td>192</td><td>9</td><td><span class=low-hits>local ok, err = pcall(fn, ...)</span></td></tr>
<tr><td>193</td><td>9</td><td><span class=low-hits>case.result = if ok then FAIL else PASS</span></td></tr>
<tr><td>194</td><td>9</td><td><span class=low-hits>if skip then</span></td></tr>
<tr><td>195</td><td>0</td><td><span class=zero-hits>case.result = SKIPPED</span></td></tr>
<tr><td>196</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>197</td><td>9</td><td><span class=low-hits>case.line = debug.info(stack and stack + 1 or 2, "l")</span></td></tr>
<tr><td>198</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>199</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>200</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>201</td><td>1</td><td><span class=low-hits>local function CHECK<T>(value: T, stack: number?): T?</span></td></tr>
<tr><td>202</td><td>1195</td><td><span class=high-hits>assert(test, "no active test")</span></td></tr>
<tr><td>203</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>204</td><td>1195</td><td><span class=high-hits>local case = test.case</span></td></tr>
<tr><td>205</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>206</td><td>1195</td><td><span class=high-hits>if not case then</span></td></tr>
<tr><td>207</td><td>9</td><td><span class=low-hits>CASE("")</span></td></tr>
<tr><td>208</td><td>9</td><td><span class=low-hits>case = test.case</span></td></tr>
<tr><td>209</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>210</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>211</td><td>1195</td><td><span class=high-hits>assert(case, "no active case")</span></td></tr>
<tr><td>212</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>213</td><td>1195</td><td><span class=high-hits>if case.result ~= FAIL then</span></td></tr>
<tr><td>214</td><td>1195</td><td><span class=high-hits>case.result = value and PASS or FAIL</span></td></tr>
<tr><td>215</td><td>1195</td><td><span class=high-hits>if skip then</span></td></tr>
<tr><td>216</td><td>1</td><td><span class=low-hits>case.result = SKIPPED</span></td></tr>
<tr><td>217</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>218</td><td>1195</td><td><span class=high-hits>case.line = debug.info(stack and stack + 1 or 2, "l")</span></td></tr>
<tr><td>219</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>220</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>221</td><td>1195</td><td><span class=high-hits>return value</span></td></tr>
<tr><td>222</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>223</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>224</td><td>1</td><td><span class=low-hits>local function TEST(name: string, fn: () -> ())</span></td></tr>
<tr><td>225</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>226</td><td>24</td><td><span class=low-hits>test = {</span></td></tr>
<tr><td>227</td><td>24</td><td><span class=low-hits>name = name,</span></td></tr>
<tr><td>228</td><td>24</td><td><span class=low-hits>cases = {},</span></td></tr>
<tr><td>229</td><td>24</td><td><span class=low-hits>duration = 0,</span></td></tr>
<tr><td>230</td><td>24</td><td><span class=low-hits>focus = false,</span></td></tr>
<tr><td>231</td><td>24</td><td><span class=low-hits>fn = fn</span></td></tr>
<tr><td>232</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>233</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>234</td><td>24</td><td><span class=low-hits>table.insert(tests, test)</span></td></tr>
<tr><td>235</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>236</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>237</td><td>1</td><td><span class=low-hits>local function FOCUS()</span></td></tr>
<tr><td>238</td><td>0</td><td><span class=zero-hits>assert(test, "no active test")</span></td></tr>
<tr><td>239</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>240</td><td>0</td><td><span class=zero-hits>check_for_focused = true</span></td></tr>
<tr><td>241</td><td>0</td><td><span class=zero-hits>if test.case then</span></td></tr>
<tr><td>242</td><td>0</td><td><span class=zero-hits>test.case.focus = true</span></td></tr>
<tr><td>243</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>244</td><td>0</td><td><span class=zero-hits>test.focus = true</span></td></tr>
<tr><td>245</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>246</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>247</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>248</td><td>1</td><td><span class=low-hits>local function FINISH(): boolean</span></td></tr>
<tr><td>249</td><td>1</td><td><span class=low-hits>local success = true</span></td></tr>
<tr><td>250</td><td>1</td><td><span class=low-hits>local total_cases = 0</span></td></tr>
<tr><td>251</td><td>1</td><td><span class=low-hits>local passed_cases = 0</span></td></tr>
<tr><td>252</td><td>1</td><td><span class=low-hits>local passed_focus_cases = 0</span></td></tr>
<tr><td>253</td><td>1</td><td><span class=low-hits>local total_focus_cases = 0</span></td></tr>
<tr><td>254</td><td>1</td><td><span class=low-hits>local duration = 0</span></td></tr>
<tr><td>255</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>256</td><td>1</td><td><span class=low-hits>for _, t in tests do</span></td></tr>
<tr><td>257</td><td>24</td><td><span class=low-hits>if check_for_focused and not t.focus then</span></td></tr>
<tr><td>258</td><td>0</td><td><span class=zero-hits>continue</span></td></tr>
<tr><td>259</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>260</td><td>24</td><td><span class=low-hits>test = t</span></td></tr>
<tr><td>261</td><td>24</td><td><span class=low-hits>fn = t.fn</span></td></tr>
<tr><td>262</td><td>24</td><td><span class=low-hits>local start = os.clock()</span></td></tr>
<tr><td>263</td><td>24</td><td><span class=low-hits>local err</span></td></tr>
<tr><td>264</td><td>24</td><td><span class=low-hits>local success = xpcall(fn, function(m: string)</span></td></tr>
<tr><td>265</td><td>0</td><td><span class=zero-hits>err = { message = m, trace = debug.traceback(nil, 2) }</span></td></tr>
<tr><td>266</td><td><span class='text-muted'>N/A</span></td><td>end)</td>></tr>
<tr><td>267</td><td>24</td><td><span class=low-hits>test.duration = os.clock() - start</span></td></tr>
<tr><td>268</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>269</td><td>24</td><td><span class=low-hits>if not test.case then</span></td></tr>
<tr><td>270</td><td>0</td><td><span class=zero-hits>CASE("")</span></td></tr>
<tr><td>271</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>272</td><td>24</td><td><span class=low-hits>assert(test.case, "no active case")</span></td></tr>
<tr><td>273</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>274</td><td>24</td><td><span class=low-hits>if not success then</span></td></tr>
<tr><td>275</td><td>0</td><td><span class=zero-hits>test.case.result = ERROR</span></td></tr>
<tr><td>276</td><td>0</td><td><span class=zero-hits>test.error = err</span></td></tr>
<tr><td>277</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>278</td><td>24</td><td><span class=low-hits>collectgarbage()</span></td></tr>
<tr><td>279</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>280</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>281</td><td>1</td><td><span class=low-hits>for _, test in tests do</span></td></tr>
<tr><td>282</td><td>24</td><td><span class=low-hits>duration += test.duration</span></td></tr>
<tr><td>283</td><td>24</td><td><span class=low-hits>for _, case in test.cases do</span></td></tr>
<tr><td>284</td><td>73</td><td><span class=low-hits>total_cases += 1</span></td></tr>
<tr><td>285</td><td>73</td><td><span class=low-hits>if case.focus or test.focus then</span></td></tr>
<tr><td>286</td><td>0</td><td><span class=zero-hits>total_focus_cases += 1</span></td></tr>
<tr><td>287</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>288</td><td>73</td><td><span class=low-hits>if case.result == PASS or case.result == NONE or case.result == SKIPPED then</span></td></tr>
<tr><td>289</td><td>73</td><td><span class=low-hits>if case.focus or test.focus then</span></td></tr>
<tr><td>290</td><td>0</td><td><span class=zero-hits>passed_focus_cases += 1</span></td></tr>
<tr><td>291</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>292</td><td>73</td><td><span class=low-hits>passed_cases += 1</span></td></tr>
<tr><td>293</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>294</td><td>0</td><td><span class=zero-hits>success = false</span></td></tr>
<tr><td>295</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>296</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>297</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>298</td><td>24</td><td><span class=low-hits>output_test_result(test)</span></td></tr>
<tr><td>299</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>300</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>301</td><td>1</td><td><span class=low-hits>print(color.gray(string.format(`{passed_cases}/{total_cases} test cases passed in %.3f ms.`, duration * 1e3)))</span></td></tr>
<tr><td>302</td><td>1</td><td><span class=low-hits>if check_for_focused then</span></td></tr>
<tr><td>303</td><td>0</td><td><span class=zero-hits>print(color.gray(`{passed_focus_cases}/{total_focus_cases} focused test cases passed`))</span></td></tr>
<tr><td>304</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>305</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>306</td><td>1</td><td><span class=low-hits>local fails = total_cases - passed_cases</span></td></tr>
<tr><td>307</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>308</td><td>1</td><td><span class=low-hits>print((fails > 0 and color.red or color.green)(`{fails} {fails == 1 and "fail" or "fails"}`))</span></td></tr>
<tr><td>309</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>310</td><td>1</td><td><span class=low-hits>check_for_focused = false</span></td></tr>
<tr><td>311</td><td>1</td><td><span class=low-hits>return success, table.clear(tests)</span></td></tr>
<tr><td>312</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>313</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>314</td><td>1</td><td><span class=low-hits>local function SKIP()</span></td></tr>
<tr><td>315</td><td>1</td><td><span class=low-hits>skip = true</span></td></tr>
<tr><td>316</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>317</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>318</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>319</td><td><span class='text-muted'>N/A</span></td><td>-- Benchmarking</td>></tr>
<tr><td>320</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>321</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>322</td><td>0</td><td><span class=zero-hits>type Bench = {</span></td></tr>
<tr><td>323</td><td>0</td><td><span class=zero-hits>time_start: number?,</span></td></tr>
<tr><td>324</td><td>0</td><td><span class=zero-hits>memory_start: number?,</span></td></tr>
<tr><td>325</td><td>0</td><td><span class=zero-hits>iterations: number?,</span></td></tr>
<tr><td>326</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>327</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>328</td><td>1</td><td><span class=low-hits>local bench: Bench?</span></td></tr>
<tr><td>329</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>330</td><td>1</td><td><span class=low-hits>function START(iter: number?): number</span></td></tr>
<tr><td>331</td><td>1</td><td><span class=low-hits>local n = iter or 1</span></td></tr>
<tr><td>332</td><td>1</td><td><span class=low-hits>assert(n > 0, "iterations must be greater than 0")</span></td></tr>
<tr><td>333</td><td>1</td><td><span class=low-hits>assert(bench, "no active benchmark")</span></td></tr>
<tr><td>334</td><td>1</td><td><span class=low-hits>assert(not bench.time_start, "clock was already started")</span></td></tr>
<tr><td>335</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>336</td><td>1</td><td><span class=low-hits>bench.iterations = n</span></td></tr>
<tr><td>337</td><td>1</td><td><span class=low-hits>bench.memory_start = gcinfo()</span></td></tr>
<tr><td>338</td><td>1</td><td><span class=low-hits>bench.time_start = os.clock()</span></td></tr>
<tr><td>339</td><td>1</td><td><span class=low-hits>return n</span></td></tr>
<tr><td>340</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>341</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>342</td><td>1</td><td><span class=low-hits>local function BENCH(name: string, fn: () -> ())</span></td></tr>
<tr><td>343</td><td>3</td><td><span class=low-hits>local active = bench</span></td></tr>
<tr><td>344</td><td>3</td><td><span class=low-hits>assert(not active, "a benchmark is already in progress")</span></td></tr>
<tr><td>345</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>346</td><td>3</td><td><span class=low-hits>bench = {}</span></td></tr>
<tr><td>347</td><td>3</td><td><span class=low-hits>assert(bench);</span></td></tr>
<tr><td>348</td><td>3</td><td><span class=low-hits>(collectgarbage :: any)("collect")</span></td></tr>
<tr><td>349</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>350</td><td>3</td><td><span class=low-hits>local mem_start = gcinfo()</span></td></tr>
<tr><td>351</td><td>3</td><td><span class=low-hits>local time_start = os.clock()</span></td></tr>
<tr><td>352</td><td>3</td><td><span class=low-hits>local err_msg: string?</span></td></tr>
<tr><td>353</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>354</td><td>3</td><td><span class=low-hits>local success = xpcall(fn, function(m: string)</span></td></tr>
<tr><td>355</td><td>0</td><td><span class=zero-hits>err_msg = m .. debug.traceback(nil, 2)</span></td></tr>
<tr><td>356</td><td><span class='text-muted'>N/A</span></td><td>end)</td>></tr>
<tr><td>357</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>358</td><td>3</td><td><span class=low-hits>local time_stop = os.clock()</span></td></tr>
<tr><td>359</td><td>3</td><td><span class=low-hits>local mem_stop = gcinfo()</span></td></tr>
<tr><td>360</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>361</td><td>3</td><td><span class=low-hits>if not success then</span></td></tr>
<tr><td>362</td><td>0</td><td><span class=zero-hits>print(`{WALL}{color.red("ERROR")}{WALL} {name}`)</span></td></tr>
<tr><td>363</td><td>0</td><td><span class=zero-hits>print(color.gray(err_msg :: string))</span></td></tr>
<tr><td>364</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>365</td><td>3</td><td><span class=low-hits>time_start = bench.time_start or time_start</span></td></tr>
<tr><td>366</td><td>3</td><td><span class=low-hits>mem_start = bench.memory_start or mem_start</span></td></tr>
<tr><td>367</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>368</td><td>3</td><td><span class=low-hits>local n = bench.iterations or 1</span></td></tr>
<tr><td>369</td><td>3</td><td><span class=low-hits>local d, d_unit = convert_units("s", (time_stop - time_start) / n)</span></td></tr>
<tr><td>370</td><td>3</td><td><span class=low-hits>local a, a_unit = convert_units("B", math.round((mem_stop - mem_start) / n * 1e3))</span></td></tr>
<tr><td>371</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>372</td><td>3</td><td><span class=low-hits>local function round(x: number): string</span></td></tr>
<tr><td>373</td><td>6</td><td><span class=low-hits>return x > 0 and x < 10 and (x - math.floor(x)) > 0 and string.format("%2.1f", x)</span></td></tr>
<tr><td>374</td><td>6</td><td><span class=low-hits>or string.format("%3.f", x)</span></td></tr>
<tr><td>375</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>376</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>377</td><td>3</td><td><span class=low-hits>print(</span></td></tr>
<tr><td>378</td><td>3</td><td><span class=low-hits>string.format(</span></td></tr>
<tr><td>379</td><td>3</td><td><span class=low-hits>`%s %s %s %s{WALL} %s`,</span></td></tr>
<tr><td>380</td><td>3</td><td><span class=low-hits>color.gray(round(d)),</span></td></tr>
<tr><td>381</td><td>3</td><td><span class=low-hits>d_unit,</span></td></tr>
<tr><td>382</td><td>3</td><td><span class=low-hits>color.gray(round(a)),</span></td></tr>
<tr><td>383</td><td>3</td><td><span class=low-hits>a_unit,</span></td></tr>
<tr><td>384</td><td>3</td><td><span class=low-hits>color.gray(name)</span></td></tr>
<tr><td>385</td><td>0</td><td><span class=zero-hits>)</span></td></tr>
<tr><td>386</td><td>0</td><td><span class=zero-hits>)</span></td></tr>
<tr><td>387</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>388</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>389</td><td>3</td><td><span class=low-hits>bench = nil</span></td></tr>
<tr><td>390</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>391</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>392</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>393</td><td><span class='text-muted'>N/A</span></td><td>-- Printing</td>></tr>
<tr><td>394</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>395</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>396</td><td>1</td><td><span class=low-hits>local function print2(v: unknown)</span></td></tr>
<tr><td>397</td><td>0</td><td><span class=zero-hits>type Buffer = { n: number, [number]: string }</span></td></tr>
<tr><td>398</td><td>0</td><td><span class=zero-hits>type Cyclic = { n: number, [{}]: number }</span></td></tr>
<tr><td>399</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>400</td><td><span class='text-muted'>N/A</span></td><td>-- overkill concatenationless string buffer</td>></tr>
<tr><td>401</td><td>0</td><td><span class=zero-hits>local function tos(value: any, stack: number, str: Buffer, cyclic: Cyclic)</span></td></tr>
<tr><td>402</td><td>0</td><td><span class=zero-hits>local TAB = " "</span></td></tr>
<tr><td>403</td><td>0</td><td><span class=zero-hits>local indent = table.concat(table.create(stack, TAB))</span></td></tr>
<tr><td>404</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>405</td><td>0</td><td><span class=zero-hits>if type(value) == "string" then</span></td></tr>
<tr><td>406</td><td>0</td><td><span class=zero-hits>local n = str.n</span></td></tr>
<tr><td>407</td><td>0</td><td><span class=zero-hits>str[n + 1] = "\""</span></td></tr>
<tr><td>408</td><td>0</td><td><span class=zero-hits>str[n + 2] = value</span></td></tr>
<tr><td>409</td><td>0</td><td><span class=zero-hits>str[n + 3] = "\""</span></td></tr>
<tr><td>410</td><td>0</td><td><span class=zero-hits>str.n = n + 3</span></td></tr>
<tr><td>411</td><td>0</td><td><span class=zero-hits>elseif type(value) ~= "table" then</span></td></tr>
<tr><td>412</td><td>0</td><td><span class=zero-hits>local n = str.n</span></td></tr>
<tr><td>413</td><td>0</td><td><span class=zero-hits>str[n + 1] = value == nil and "nil" or tostring(value)</span></td></tr>
<tr><td>414</td><td>0</td><td><span class=zero-hits>str.n = n + 1</span></td></tr>
<tr><td>415</td><td>0</td><td><span class=zero-hits>elseif next(value) == nil then</span></td></tr>
<tr><td>416</td><td>0</td><td><span class=zero-hits>local n = str.n</span></td></tr>
<tr><td>417</td><td>0</td><td><span class=zero-hits>str[n + 1] = "{}"</span></td></tr>
<tr><td>418</td><td>0</td><td><span class=zero-hits>str.n = n + 1</span></td></tr>
<tr><td>419</td><td>0</td><td><span class=zero-hits>else -- is table</span></td></tr>
<tr><td>420</td><td>0</td><td><span class=zero-hits>local tabbed_indent = indent .. TAB</span></td></tr>
<tr><td>421</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>422</td><td>0</td><td><span class=zero-hits>if cyclic[value] then</span></td></tr>
<tr><td>423</td><td>0</td><td><span class=zero-hits>str.n += 1</span></td></tr>
<tr><td>424</td><td>0</td><td><span class=zero-hits>str[str.n] = color.gray(`CYCLIC REF {cyclic[value]}`)</span></td></tr>
<tr><td>425</td><td>0</td><td><span class=zero-hits>return</span></td></tr>
<tr><td>426</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>427</td><td>0</td><td><span class=zero-hits>cyclic.n += 1</span></td></tr>
<tr><td>428</td><td>0</td><td><span class=zero-hits>cyclic[value] = cyclic.n</span></td></tr>
<tr><td>429</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>430</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>431</td><td>0</td><td><span class=zero-hits>str.n += 3</span></td></tr>
<tr><td>432</td><td>0</td><td><span class=zero-hits>str[str.n - 2] = "{ "</span></td></tr>
<tr><td>433</td><td>0</td><td><span class=zero-hits>str[str.n - 1] = color.gray(tostring(cyclic[value]))</span></td></tr>
<tr><td>434</td><td>0</td><td><span class=zero-hits>str[str.n - 0] = "\n"</span></td></tr>
<tr><td>435</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>436</td><td>0</td><td><span class=zero-hits>local i, v = next(value, nil)</span></td></tr>
<tr><td>437</td><td>0</td><td><span class=zero-hits>while v ~= nil do</span></td></tr>
<tr><td>438</td><td>0</td><td><span class=zero-hits>local n = str.n</span></td></tr>
<tr><td>439</td><td>0</td><td><span class=zero-hits>str[n + 1] = tabbed_indent</span></td></tr>
<tr><td>440</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>441</td><td>0</td><td><span class=zero-hits>if type(i) ~= "string" then</span></td></tr>
<tr><td>442</td><td>0</td><td><span class=zero-hits>str[n + 2] = "["</span></td></tr>
<tr><td>443</td><td>0</td><td><span class=zero-hits>str[n + 3] = tostring(i)</span></td></tr>
<tr><td>444</td><td>0</td><td><span class=zero-hits>str[n + 4] = "]"</span></td></tr>
<tr><td>445</td><td>0</td><td><span class=zero-hits>n += 4</span></td></tr>
<tr><td>446</td><td>0</td><td><span class=zero-hits>else</span></td></tr>
<tr><td>447</td><td>0</td><td><span class=zero-hits>str[n + 2] = tostring(i)</span></td></tr>
<tr><td>448</td><td>0</td><td><span class=zero-hits>n += 2</span></td></tr>
<tr><td>449</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>450</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>451</td><td>0</td><td><span class=zero-hits>str[n + 1] = " = "</span></td></tr>
<tr><td>452</td><td>0</td><td><span class=zero-hits>str.n = n + 1</span></td></tr>
<tr><td>453</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>454</td><td>0</td><td><span class=zero-hits>tos(v, stack + 1, str, cyclic)</span></td></tr>
<tr><td>455</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>456</td><td>0</td><td><span class=zero-hits>i, v = next(value, i)</span></td></tr>
<tr><td>457</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>458</td><td>0</td><td><span class=zero-hits>n = str.n</span></td></tr>
<tr><td>459</td><td>0</td><td><span class=zero-hits>str[n + 1] = v ~= nil and ",\n" or "\n"</span></td></tr>
<tr><td>460</td><td>0</td><td><span class=zero-hits>str.n = n + 1</span></td></tr>
<tr><td>461</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>462</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>463</td><td>0</td><td><span class=zero-hits>local n = str.n</span></td></tr>
<tr><td>464</td><td>0</td><td><span class=zero-hits>str[n + 1] = indent</span></td></tr>
<tr><td>465</td><td>0</td><td><span class=zero-hits>str[n + 2] = "}"</span></td></tr>
<tr><td>466</td><td>0</td><td><span class=zero-hits>str.n = n + 2</span></td></tr>
<tr><td>467</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>468</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>469</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>470</td><td>0</td><td><span class=zero-hits>local str = { n = 0 }</span></td></tr>
<tr><td>471</td><td>0</td><td><span class=zero-hits>local cyclic = { n = 0 }</span></td></tr>
<tr><td>472</td><td>0</td><td><span class=zero-hits>tos(v, 0, str, cyclic)</span></td></tr>
<tr><td>473</td><td>0</td><td><span class=zero-hits>print(table.concat(str))</span></td></tr>
<tr><td>474</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>475</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>476</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>477</td><td><span class='text-muted'>N/A</span></td><td>-- Equality</td>></tr>
<tr><td>478</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>479</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>480</td><td>1</td><td><span class=low-hits>local function shallow_eq(a: {}, b: {}): boolean</span></td></tr>
<tr><td>481</td><td>0</td><td><span class=zero-hits>if #a ~= #b then</span></td></tr>
<tr><td>482</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>483</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>484</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>485</td><td>0</td><td><span class=zero-hits>for i, v in next, a do</span></td></tr>
<tr><td>486</td><td>0</td><td><span class=zero-hits>if b[i] ~= v then</span></td></tr>
<tr><td>487</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>488</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>489</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>490</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>491</td><td>0</td><td><span class=zero-hits>for i, v in next, b do</span></td></tr>
<tr><td>492</td><td>0</td><td><span class=zero-hits>if a[i] ~= v then</span></td></tr>
<tr><td>493</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>494</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>495</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>496</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>497</td><td>0</td><td><span class=zero-hits>return true</span></td></tr>
<tr><td>498</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>499</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>500</td><td>1</td><td><span class=low-hits>local function deep_eq(a: {}, b: {}): boolean</span></td></tr>
<tr><td>501</td><td>0</td><td><span class=zero-hits>if #a ~= #b then</span></td></tr>
<tr><td>502</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>503</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>504</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>505</td><td>0</td><td><span class=zero-hits>for i, v in next, a do</span></td></tr>
<tr><td>506</td><td>0</td><td><span class=zero-hits>if type(b[i]) == "table" and type(v) == "table" then</span></td></tr>
<tr><td>507</td><td>0</td><td><span class=zero-hits>if deep_eq(b[i], v) == false then</span></td></tr>
<tr><td>508</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>509</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>510</td><td>0</td><td><span class=zero-hits>elseif b[i] ~= v then</span></td></tr>
<tr><td>511</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>512</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>513</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>514</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>515</td><td>0</td><td><span class=zero-hits>for i, v in next, b do</span></td></tr>
<tr><td>516</td><td>0</td><td><span class=zero-hits>if type(a[i]) == "table" and type(v) == "table" then</span></td></tr>
<tr><td>517</td><td>0</td><td><span class=zero-hits>if deep_eq(a[i], v) == false then</span></td></tr>
<tr><td>518</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>519</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>520</td><td>0</td><td><span class=zero-hits>elseif a[i] ~= v then</span></td></tr>
<tr><td>521</td><td>0</td><td><span class=zero-hits>return false</span></td></tr>
<tr><td>522</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>523</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>524</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>525</td><td>0</td><td><span class=zero-hits>return true</span></td></tr>
<tr><td>526</td><td><span class='text-muted'>N/A</span></td><td>end</td>></tr>
<tr><td>527</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>528</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>529</td><td><span class='text-muted'>N/A</span></td><td>-- Return</td>></tr>
<tr><td>530</td><td><span class='text-muted'>N/A</span></td><td>--------------------------------------------------------------------------------</td>></tr>
<tr><td>531</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>532</td><td>1</td><td><span class=low-hits>return {</span></td></tr>
<tr><td>533</td><td>1</td><td><span class=low-hits>test = function()</span></td></tr>
<tr><td>534</td><td>1</td><td><span class=low-hits>return {</span></td></tr>
<tr><td>535</td><td>1</td><td><span class=low-hits>TEST = TEST,</span></td></tr>
<tr><td>536</td><td>1</td><td><span class=low-hits>CASE = CASE,</span></td></tr>
<tr><td>537</td><td>1</td><td><span class=low-hits>CHECK = CHECK,</span></td></tr>
<tr><td>538</td><td>1</td><td><span class=low-hits>FINISH = FINISH,</span></td></tr>
<tr><td>539</td><td>1</td><td><span class=low-hits>SKIP = SKIP,</span></td></tr>
<tr><td>540</td><td>1</td><td><span class=low-hits>FOCUS = FOCUS,</span></td></tr>
<tr><td>541</td><td>1</td><td><span class=low-hits>CHECK_EXPECT_ERR = CHECK_EXPECT_ERR,</span></td></tr>
<tr><td>542</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
<tr><td>543</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>544</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>545</td><td>1</td><td><span class=low-hits>benchmark = function()</span></td></tr>
<tr><td>546</td><td>1</td><td><span class=low-hits>return BENCH, START</span></td></tr>
<tr><td>547</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>548</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>549</td><td>1</td><td><span class=low-hits>disable_formatting = function()</span></td></tr>
<tr><td>550</td><td>0</td><td><span class=zero-hits>disable_ansi = true</span></td></tr>
<tr><td>551</td><td><span class='text-muted'>N/A</span></td><td>end,</td>></tr>
<tr><td>552</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>553</td><td>1</td><td><span class=low-hits>print = print2,</span></td></tr>
<tr><td>554</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>555</td><td>1</td><td><span class=low-hits>seq = shallow_eq,</span></td></tr>
<tr><td>556</td><td>1</td><td><span class=low-hits>deq = deep_eq,</span></td></tr>
<tr><td>557</td><td><span class='text-muted'>N/A</span></td><td></td>></tr>
<tr><td>558</td><td>1</td><td><span class=low-hits>color = color,</span></td></tr>
<tr><td>559</td><td>0</td><td><span class=zero-hits>}</span></td></tr>
</tbody></table></body></html>

2044
coverage/tests.luau.html vendored Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

View file

@ -1,69 +1,64 @@
import { defineConfig } from 'vitepress'
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: "Jecs",
base: "/jecs/",
description: "A VitePress Site",
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: 'Learn', link: '/' },
{ text: 'API', link: '/api/jecs.md' },
{ text: 'Examples', link: 'https://github.com/Ukendio/jecs/tree/main/examples' },
],
sidebar: {
"/api/": [
{
text: "API reference",
items: [
{ text: "jecs", link: "/api/jecs" },
{ text: "World", link: "/api/world" },
{ text: "Query", link: "/api/query" }
]
}
],
"/learn/": [
{
text: "Introduction",
items: [
{ text: 'Getting Started', link: '/learn/overview/get-started' },
{ text: 'First Jecs Project', link: '/learn/overview/first-jecs-project' }
]
},
{
text: 'Concepts',
items: [
{ text: 'Entities and Components', link: '/learn/concepts/entities-and-components' },
{ text: 'Queries', link: '/learn/concepts/queries' },
{ text: 'Relationships', link: '/learn/concepts/relationships' },
{ text: 'Component Traits', link: 'learn/concepts/component-traits' },
{ text: 'Addons', link: '/learn/concepts/addons' }
]
},
{
text: "FAQ",
items: [
{ text: 'How can I contribute?', link: '/learn/faq/contributing' }
]
},
],
"/contributing/": [
{
text: 'Contributing',
items: [
{ text: 'Contribution Guidelines', link: '/learn/contributing/guidelines' },
{ text: 'Submitting Issues', link: '/learn/contributing/issues' },
{ text: 'Submitting Pull Requests', link: '/learn/contributing/pull-requests' },
]
}
]
},
socialLinks: [
{ icon: 'github', link: 'https://github.com/ukendio/jecs' }
]
}
})
import { defineConfig } from "vitepress";
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: "Jecs",
base: "/jecs/",
description: "A VitePress Site",
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: "Learn", link: "/" },
{ text: "API", link: "/api/jecs.md" },
{ text: "Examples", link: "https://github.com/Ukendio/jecs/tree/main/examples" },
],
sidebar: {
"/api/": [
{
text: "API reference",
items: [
{ text: "jecs", link: "/api/jecs" },
{ text: "World", link: "/api/world" },
{ text: "Query", link: "/api/query" },
],
},
],
"/learn/": [
{
text: "Introduction",
items: [
{ text: "Getting Started", link: "/learn/overview/get-started" },
{ text: "First Jecs Project", link: "/learn/overview/first-jecs-project" },
],
},
{
text: "Concepts",
items: [
{ text: "Entities and Components", link: "/learn/concepts/entities-and-components" },
{ text: "Queries", link: "/learn/concepts/queries" },
{ text: "Relationships", link: "/learn/concepts/relationships" },
{ text: "Component Traits", link: "learn/concepts/component-traits" },
{ text: "Addons", link: "/learn/concepts/addons" },
],
},
{
text: "FAQ",
items: [{ text: "How can I contribute?", link: "/learn/faq/contributing" }],
},
],
"/contributing/": [
{
text: "Contributing",
items: [
{ text: "Contribution Guidelines", link: "/learn/contributing/guidelines" },
{ text: "Submitting Issues", link: "/learn/contributing/issues" },
{ text: "Submitting Pull Requests", link: "/learn/contributing/pull-requests" },
],
},
],
},
socialLinks: [{ icon: "github", link: "https://github.com/ukendio/jecs" }],
},
});

View file

@ -45,6 +45,6 @@ function jecs.pair(
```
::: info
Note that while relationship pairs can be used as components, meaning you can add data with it as an ID, however they cannot be used as entities. Meaning you cannot add components to a pair as the source of a binding.
While relationship pairs can be used as components and have data associated with an ID, they cannot be used as entities. Meaning you cannot add components to a pair as the source of a binding.
:::

View file

@ -2,12 +2,26 @@
A collection of third-party jecs addons made by the community. If you would like to share what you're working on, [submit a pull request](https://github.com/Ukendio/jecs)!
# Debuggers
# Development tools
## [jabby](https://github.com/alicesaidhi/jabby)
A jecs debugger with a string-based query language and entity editing capabilities.
## [jecs_entity_visualiser](https://github.com/Ukendio/jecs/blob/main/addons/entity_visualiser.luau)
A simple entity and component visualiser in the output
## [jecs_lifetime_tracker](https://github.com/Ukendio/jecs/blob/main/addons/lifetime_tracker.luau)
A tool for inspecting entity lifetimes
# Helpers
## [jecs_observers](https://github.com/Ukendio/jecs/blob/main/addons/observers.luau)
Observers for queries and signals for components
# Schedulers
## [lockstep scheduler](https://gist.github.com/1Axen/6d4f78b3454cf455e93794505588354b)
@ -25,4 +39,18 @@ Provides hooks and a scheduler that implements jabby and a topographical runtime
## [planck](https://github.com/YetAnotherClown/planck)
An agnostic scheduler inspired by Bevy and Flecs, with core features including phases, pipelines, run conditions, and startup systems.
Planck also provides plugins for Jabby, Matter Hooks, and more.
Planck also provides plugins for Jabby, Matter Hooks, and more.
# Replication
## [feces](https://github.com/NeonD00m/feces)
A generalized replication system for jecs
# Input
## [Axis](https://github.com/NeonD00m/axis)
An agnostic, simple and versatile input library for ECS
# Observers

View file

@ -14,6 +14,10 @@ A (component) ID can be marked with `Tag´ in which the component will never con
Hooks are part of the "interface" of a component. You could consider hooks as the counterpart to OOP methods in ECS. They define the behavior of a component, but can only be invoked through mutations on the component data. You can only configure a single `OnAdd`, `OnRemove` and `OnSet` hook per component, just like you can only have a single constructor and destructor.
::: warning
Hooks, added to a component that has already been added to other entities/components, will not be called.
:::
## Examples
::: code-group
@ -152,6 +156,8 @@ world.add(loot, pair(OwnedBy, player));
world.delete(player);
```
:::
### (OnDeleteTarget, Delete)
::: code-group

View file

@ -1,6 +1,6 @@
# Queries
## Introductiuon
## Introduction
Queries enable games to quickly find entities that satifies provided conditions.

2
jecs.d.ts vendored
View file

@ -258,7 +258,7 @@ export function pair_second<P, O>(world: World, p: Pair<P, O>): Entity<O>;
export declare const OnAdd: Entity<(e: Entity) => void>;
export declare const OnRemove: Entity<(e: Entity) => void>;
export declare const OnSet: Entity<(e: Entity, value: unknown) => void>;
export declare const OnChange: Entity<(e: Entity, value: unknown) => void>;
export declare const ChildOf: Tag;
export declare const Wildcard: Entity;
export declare const w: Entity;

710
jecs.luau

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "@rbxts/jecs",
"version": "0.5.5",
"version": "0.6.0-rc.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@rbxts/jecs",
"version": "0.5.5",
"version": "0.6.0-rc.1",
"license": "MIT",
"devDependencies": {
"@rbxts/compiler-types": "^2.3.0-types.1",

View file

@ -1,6 +1,6 @@
{
"name": "@rbxts/jecs",
"version": "0.5.5",
"version": "0.6.0-rc.1",
"description": "Stupidly fast Entity Component System",
"main": "jecs.luau",
"repository": {

106
test/addons/observers.luau Normal file
View file

@ -0,0 +1,106 @@
local jecs = require("@jecs")
local testkit = require("@testkit")
local test = testkit.test()
local CASE, TEST, FINISH, CHECK = test.CASE, test.TEST, test.FINISH, test.CHECK
local observers_add = require("@addons/observers")
TEST("addons/observers", function()
local world = observers_add(jecs.world())
do CASE "Ensure ordering between signals and observers"
local A = world:component()
local B = world:component()
local count = 0
local function counter()
count += 1
end
world:observer({
callback = counter,
query = world:query(A, B),
})
world:added(A, counter)
world:added(A, counter)
world:removed(A, counter)
local e = world:entity()
world:add(e, A)
CHECK(count == 2)
world:add(e, B)
CHECK(count == 3)
world:remove(e, A)
CHECK(count == 4)
end
do CASE "Rematch entities in observers"
local A = world:component()
local count = 0
local function counter()
count += 1
end
world:observer({
query = world:query(A),
callback = counter
})
local e = world:entity()
world:set(e, A, true)
CHECK(count == 1)
world:remove(e, A)
CHECK(count == 1)
world:set(e, A, true)
CHECK(count == 2)
world:set(e, A, true)
CHECK(count == 3)
end
do CASE "Don't report changed components in monitor"
local A = world:component()
local count = 0
local function counter()
count += 1
end
world:monitor({
query = world:query(A),
callback = counter
})
local e = world:entity()
world:set(e, A, true)
CHECK(count == 1)
world:remove(e, A)
CHECK(count == 2)
world:set(e, A, true)
CHECK(count == 3)
world:set(e, A, true)
CHECK(count == 3)
end
do CASE "Call on pairs"
local A = world:component()
local callcount = 0
world:added(A, function(entity)
callcount += 1
end)
world:added(A, function(entity)
callcount += 1
end)
local e = world:entity()
local e1 = world:entity()
world:add(e1, jecs.pair(A, e))
world:add(e, jecs.pair(A, e1))
CHECK(callcount == 4)
end
end)
return FINISH()

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,6 @@ local jecs = require("@jecs")
local pair = jecs.pair
local ChildOf = jecs.ChildOf
local lifetime_tracker_add = require("@tools/lifetime_tracker")
local pe = require("@tools/entity_visualiser").prettify
local world = lifetime_tracker_add(jecs.world(), {padding_enabled=false})
local FriendsWith = world:component()
world:print_snapshot()

View file

@ -1,33 +0,0 @@
return {
white_underline = function(s: any)
return `\27[1;4m{s}\27[0m`
end,
white = function(s: any)
return `\27[37;1m{s}\27[0m`
end,
green = function(s: any)
return `\27[32;1m{s}\27[0m`
end,
red = function(s: any)
return `\27[31;1m{s}\27[0m`
end,
yellow = function(s: any)
return `\27[33;1m{s}\27[0m`
end,
red_highlight = function(s: any)
return `\27[41;1;30m{s}\27[0m`
end,
green_highlight = function(s: any)
return `\27[42;1;30m{s}\27[0m`
end,
gray = function(s: any)
return `\27[30;1m{s}\27[0m`
end,
}

View file

@ -1,7 +1,40 @@
local jecs = require("@jecs")
local ECS_GENERATION = jecs.ECS_GENERATION
local ECS_ID = jecs.ECS_ID
local ansi = require("@tools/ansi")
local ansi = {
white_underline = function(s: any)
return `\27[1;4m{s}\27[0m`
end,
white = function(s: any)
return `\27[37;1m{s}\27[0m`
end,
green = function(s: any)
return `\27[32;1m{s}\27[0m`
end,
red = function(s: any)
return `\27[31;1m{s}\27[0m`
end,
yellow = function(s: any)
return `\27[33;1m{s}\27[0m`
end,
red_highlight = function(s: any)
return `\27[41;1;30m{s}\27[0m`
end,
green_highlight = function(s: any)
return `\27[42;1;30m{s}\27[0m`
end,
gray = function(s: any)
return `\27[30;1m{s}\27[0m`
end,
}
local function pe(e: any)
local gen = ECS_GENERATION(e)
@ -37,7 +70,51 @@ local function components(world: jecs.World, entity: any)
return true
end
local entity_index_try_get_any = jecs.entity_index_try_get_any
local function stringify(world: jecs.World)
local function record(e: jecs.Entity): jecs.Record
return entity_index_try_get_any(world.entity_index :: any, e :: any) :: any
end
local function tbl(e: jecs.Entity)
return record(e).archetype
end
local function archetype(e: jecs.Entity)
return tbl(e).type
end
local function records(e: jecs.Entity)
return tbl(e).records
end
local function columns(e: jecs.Entity)
return tbl(e).columns
end
local function row(e: jecs.Entity)
return record(e).row
end
-- Important to order them in the order of their columns
local function tuple(e, ...)
for i, column in columns(e) do
if select(i, ...) ~= column[row(e)] then
return false
end
end
return true
end
return {
record = record,
tbl = tbl,
archetype = archetype,
records = records,
row = row,
tuple = tuple,
columns = columns
}
end
return {
components = components,
prettify = pe,
stringify = stringify
}

View file

@ -7,7 +7,6 @@ local pair = jecs.pair
local prettify = require("@tools/entity_visualiser").prettify
local pe = prettify
local ansi = require("@tools/ansi")
function print_centered_entity(entity, width: number)
local entity_str = tostring(entity)
@ -33,19 +32,22 @@ local function pad()
end
end
local function lifetime_tracker_add(world: jecs.World, opt)
type PatchedWorld = jecs.World & {
print_entity_index: (world: PatchedWorld) -> (),
print_snapshot: (world: PatchedWorld) -> (),
}
local function lifetime_tracker_add(world: jecs.World, opt): PatchedWorld
local entity_index = world.entity_index
local dense_array = entity_index.dense_array
local component_index = world.component_index
local ENTITY_RANGE = (jecs.Rest :: any) + 1
local w = setmetatable({}, { __index = world })
padding_enabled = opt.padding_enabled
local world_entity = world.entity
w.entity = function(self, entity)
world.entity = function(_, entity)
if entity then
return world_entity(world, entity)
end
@ -59,7 +61,7 @@ local function lifetime_tracker_add(world: jecs.World, opt)
pad()
return e
end
w.print_entity_index = function(self)
world.print_entity_index = function()
local max_id = entity_index.max_id
local alive_count = entity_index.alive_count
local alive = table.move(dense_array, 1 + jecs.Rest :: any, alive_count, 1, {})
@ -86,7 +88,7 @@ local function lifetime_tracker_add(world: jecs.World, opt)
pad()
end
local timelines = {}
w.print_snapshot = function(self)
world.print_snapshot = function(_)
local timeline = #timelines + 1
local entity_column_width = 10
local status_column_width = 8
@ -161,7 +163,7 @@ local function lifetime_tracker_add(world: jecs.World, opt)
end
local world_add = world.add
local relations = {}
w.add = function(self, entity: any, component: any)
world.add = function(_, entity: any, component: any)
world_add(world, entity, component)
if jecs.IS_PAIR(component) then
local relation = jecs.pair_first(world, component)
@ -172,7 +174,7 @@ local function lifetime_tracker_add(world: jecs.World, opt)
end
local world_delete = world.delete
w.delete = function(self, e)
world.delete = function(world, e)
world_delete(world, e)
local idr_t = component_index[pair(__, e)]
@ -210,7 +212,7 @@ local function lifetime_tracker_add(world: jecs.World, opt)
print(`*deleted {pe(e)}`)
pad()
end
return w
return world
end
return lifetime_tracker_add

153
tools/read_lcov.py Normal file
View file

@ -0,0 +1,153 @@
import os
LCOV_FILE = "coverage.out"
OUTPUT_DIR = "coverage"
os.makedirs(OUTPUT_DIR, exist_ok=True)
def parse_lcov(content):
"""Parses LCOV data from a single string."""
files = {}
current_file = None
for line in content.splitlines():
if line.startswith("SF:"):
current_file = line[3:].strip()
files[current_file] = {"coverage": {}, "functions": []}
elif line.startswith("DA:") and current_file:
parts = line[3:].split(",")
line_num = int(parts[0])
execution_count = int(parts[1])
files[current_file]["coverage"][line_num] = execution_count
elif line.startswith("FN:") and current_file:
parts = line[3:].split(",")
line_num = int(parts[0])
function_name = parts[1].strip()
files[current_file]["functions"].append({"name": function_name, "line": line_num, "hits": 0})
elif line.startswith("FNDA:") and current_file:
parts = line[5:].split(",")
hit_count = int(parts[0])
function_name = parts[1].strip()
for func in files[current_file]["functions"]:
if func["name"] == function_name:
func["hits"] = hit_count
break
return files
def read_source_file(filepath):
"""Reads source file content if available."""
if not os.path.exists(filepath):
return []
with open(filepath, "r", encoding="utf-8") as f:
return f.readlines()
def generate_file_html(filepath, coverage_data, functions_data):
"""Generates an HTML file for a specific source file."""
filename = os.path.basename(filepath)
source_code = read_source_file(filepath)
html_path = os.path.join(OUTPUT_DIR, f"{filename}.html")
total_hits = sum(func["hits"] for func in functions_data)
max_hits = max((func["hits"] for func in functions_data), default=0)
total_functions = len(functions_data)
covered_functions = sum(1 for func in functions_data if func["hits"] > 0)
function_coverage_percent = (covered_functions / total_functions * 100) if total_functions > 0 else 0
lines = [
"<html><head>",
'<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">',
'<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>',
"<style>",
"body { font-family: monospace; text-align: center; }",
"#funcTable table { margin: 0 auto; width: auto; max-width: 300px; font-size: 14px; border-collapse: collapse; }",
"#funcTable th, #funcTable td { padding: 2px 6px; text-align: left; white-space: nowrap; }",
"#funcTable th { background-color: #ddd; }",
"#funcTable td:nth-child(2) { text-align: right; min-width: 50px; }",
".zero-hits { background-color: #fcc; font-weight: bold; color: red; }",
".nonzero-hits { color: green; font-weight: bold; }",
".low-hits { background-color: #ffe6b3; }",
".high-hits { background-color: #cfc; }",
".source-code-table { margin-left: 10px; }"
"th, td { padding: 0px; font-size: 12px; }",
"table.table { font-size: 14px; border-collapse: collapse; }",
"table.table th, table.table td { padding: 1px; font-size: 12px; line-height: 1.2; }",
"table.table tr { height: auto; }",
"</style></head><body>",
f'<h1 class="text-center">{filename} Coverage</h1>',
f'<h2>Total Execution Hits: {total_hits}</h2>',
f'<h2>Function Coverage Overview: {function_coverage_percent:.2f}%</h2>',
'<button class="btn btn-primary mb-2" type="button" data-bs-toggle="collapse" data-bs-target="#funcTable">'
'Toggle Function Coverage</button>',
'<div class="collapse show" id="funcTable">',
'<h2>Function Coverage:</h2><table class="table table-bordered"><thead><tr><th>Function</th><th>Hits</th></tr></thead><tbody>'
]
longest_name = max((len(func["name"]) for func in functions_data), default=0)
for func in functions_data:
hit_color = "red" if func["hits"] == 0 else "green"
lines.append(
f'<tr><td style="padding: 1px; min-width: {longest_name}ch;">{func["name"]}</td>'
f'<td style="padding: 1px; color: {hit_color}; font-weight: bold;">{func["hits"]}</td></tr>'
)
lines.append('</tbody></table></div>') # Close collapsible div
lines.append('<h2>Source Code:</h2><table class="table table-bordered source-code-table "><thead><tr><th>Line</th><th>Hits</th><th>Code</th></tr></thead><tbody>')
for i, line in enumerate(source_code, start=1):
stripped_line = line.strip()
class_name = "text-muted"
if not stripped_line or stripped_line.startswith("end") or stripped_line.startswith("--"):
count_display = "<span class='text-muted'>N/A</span>"
lines.append(f'<tr><td>{i}</td><td>{count_display}</td><td>{line.strip()}</td>></tr>')
else:
count = coverage_data.get(i, 0)
class_name = "zero-hits" if count == 0 else "low-hits" if count < max_hits * 0.3 else "high-hits"
count_display = f'{count}'
marked_text = f'<span class={class_name}>{line.strip()}</span>'
lines.append(f'<tr><td>{i}</td><td>{count_display}</td><td>{marked_text}</td></tr>')
lines.append("</tbody></table></body></html>")
with open(html_path, "w", encoding="utf-8") as f:
f.write("\n".join(lines))
def generate_index(files):
"""Generates an index.html summarizing the coverage."""
index_html = [
"<html><head>",
'<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">',
"</head><body>",
'<h1 class="text-center">Coverage Report</h1>',
'<table class="table table-striped table-bordered"><thead><tr><th>File</th><th>Total Hits</th><th>Functions</th></tr></thead><tbody>'
]
for filepath, data in files.items():
filename = os.path.basename(filepath)
total_hits = sum(func["hits"] for func in data["functions"])
total_functions = len(data["functions"])
index_html.append(f'<tr><td><a href="{filename}.html">{filename}</a></td><td>{total_hits}</td><td>{total_functions}</td></tr>')
index_html.append("</tbody></table></body></html>")
with open(os.path.join(OUTPUT_DIR, "index.html"), "w", encoding="utf-8") as f:
f.write("\n".join(index_html))
with open(LCOV_FILE, "r", encoding="utf-8") as f:
lcov_content = f.read()
files_data = parse_lcov(lcov_content)
for file_path, data in files_data.items():
generate_file_html(file_path, data["coverage"], data["functions"])
generate_index(files_data)
print(f"Coverage report generated in {OUTPUT_DIR}/index.html")

View file

@ -3,6 +3,10 @@
-- v0.7.3
-- MIT License
-- Copyright (c) 2022 centau
--
-- Some changes that I have made to this module is to evaluate the tests lazily,
-- this way only focused tests will actually be ran rather than just focusing their output.
--
--------------------------------------------------------------------------------
local disable_ansi = false
@ -112,6 +116,7 @@ type Test = {
trace: string,
}?,
focus: boolean,
fn: () -> ()
}
type Case = {
@ -221,59 +226,66 @@ local function CHECK<T>(value: T, stack: number?): T?
return value
end
local test_focused = false
local function TEST(name: string, fn: () -> ())
local active = test
assert(not active, "cannot start test while another test is in progress")
test = {
name = name,
cases = {},
duration = 0,
focus = false,
fn = fn
}
assert(test)
table.insert(tests, test)
local t = test
local start = os.clock()
local err
local success = xpcall(fn, function(m: string)
err = { message = m, trace = debug.traceback(nil, 2) }
end)
test.duration = os.clock() - start
if not test.case then
CASE("")
if check_for_focused and not test_focused then
test.focus = true
test_focused = true
end
assert(test.case, "no active case")
if not success then
test.case.result = ERROR
test.error = err
end
test = nil
table.insert(tests, t)
end
local function FOCUS()
assert(test, "no active test")
check_for_focused = true
if test.case then
test.case.focus = true
else
test.focus = true
end
test_focused = false
end
local function FINISH(): boolean
local success = true
local function FINISH(): number
local total_cases = 0
local passed_cases = 0
local passed_focus_cases = 0
local total_focus_cases = 0
local duration = 0
for _, t in tests do
if check_for_focused and not t.focus then
continue
end
test = t
local fn = t.fn
local start = os.clock()
local err
local ok = xpcall(fn, function(m: string)
err = { message = m, trace = debug.traceback(nil, 2) }
end)
t.duration = os.clock() - start
if not t.case then
CASE("")
end
assert(t.case, "no active case")
if not ok then
t.case.result = ERROR
t.error = err
end
collectgarbage()
end
for _, test in tests do
duration += test.duration
for _, case in test.cases do
@ -304,7 +316,8 @@ local function FINISH(): boolean
print((fails > 0 and color.red or color.green)(`{fails} {fails == 1 and "fail" or "fails"}`))
check_for_focused = false
return success, table.clear(tests)
table.clear(tests)
return math.clamp(fails, 0, 1)
end
local function SKIP()