added test.physics.Joint

This commit is contained in:
ell
2023-11-16 21:54:01 +00:00
parent 8124804d49
commit adc6fbea4c
7 changed files with 301 additions and 272 deletions
File diff suppressed because one or more lines are too long
+17 -20
View File
@@ -1,30 +1,27 @@
<!-- PASSED 285 || FAILED 1 || SKIPPED 15 || TIME 14.670 --> <!-- PASSED 287 || FAILED 0 || SKIPPED 14 || TIME 14.726 -->
### Info ### Info
**301** tests were completed in **14.670s** with **285** passed, **1** failed, and **15** skipped **301** tests were completed in **14.726s** with **287** passed, **0** failed, and **14** skipped
Renderer: OpenGL | 4.1 Metal - 76.3 | Apple | Apple M1 Max Renderer: OpenGL | 4.1 Metal - 76.3 | Apple | Apple M1 Max
### Report ### Report
| Module | Pass | Fail | Skip | Time | | Module | Pass | Fail | Skip | Time |
| --------------------- | ------ | ------ | ------- | ------ | | --------------------- | ------ | ------ | ------- | ------ |
| 🟢 audio | 28 | 0 | 0 | 0.890s | | 🟢 audio | 28 | 0 | 0 | 0.894s |
| 🟢 data | 12 | 0 | 0 | 0.205s | | 🟢 data | 12 | 0 | 0 | 0.209s |
| 🟢 event | 4 | 0 | 2 | 0.102s | | 🟢 event | 4 | 0 | 2 | 0.103s |
| 🟢 filesystem | 29 | 0 | 2 | 0.530s | | 🟢 filesystem | 29 | 0 | 2 | 0.550s |
| 🔴 font | 6 | 1 | 0 | 0.121s | | 🟢 font | 7 | 0 | 0 | 0.124s |
| 🟢 graphics | 102 | 0 | 3 | 3.232s | | 🟢 graphics | 102 | 0 | 3 | 3.231s |
| 🟢 image | 5 | 0 | 0 | 0.086s | | 🟢 image | 5 | 0 | 0 | 0.098s |
| 🟢 math | 20 | 0 | 0 | 0.339s | | 🟢 math | 20 | 0 | 0 | 0.353s |
| 🟢 physics | 22 | 0 | 4 | 0.434s | | 🟢 physics | 23 | 0 | 3 | 0.449s |
| 🟢 sound | 4 | 0 | 0 | 0.071s | | 🟢 sound | 4 | 0 | 0 | 0.074s |
| 🟢 system | 6 | 0 | 2 | 0.139s | | 🟢 system | 6 | 0 | 2 | 0.144s |
| 🟢 thread | 5 | 0 | 0 | 0.376s | | 🟢 thread | 5 | 0 | 0 | 0.377s |
| 🟢 timer | 6 | 0 | 0 | 2.091s | | 🟢 timer | 6 | 0 | 0 | 2.093s |
| 🟢 video | 2 | 0 | 0 | 0.039s | | 🟢 video | 2 | 0 | 0 | 0.040s |
| 🟢 window | 34 | 0 | 2 | 6.015s | | 🟢 window | 34 | 0 | 2 | 5.986s |
### Failures ### Failures
> 🔴 GlyphData
> assert 8 [check glyph number] expected '97' got '0'
+241 -243
View File
@@ -1,30 +1,30 @@
<testsuites name="love.test" tests="285" failures="1" skipped="15" time="14.670"> <testsuites name="love.test" tests="287" failures="0" skipped="14" time="14.726">
<testsuite name="love.audio" tests="28" failures="0" skipped="0" time="0.890"> <testsuite name="love.audio" tests="28" failures="0" skipped="0" time="0.894">
<testcase classname="RecordingDevice" name="RecordingDevice" assertions="20" time="0.401"> <testcase classname="RecordingDevice" name="RecordingDevice" assertions="20" time="0.398">
</testcase> </testcase>
<testcase classname="Source" name="Source" assertions="54" time="0.022"> <testcase classname="Source" name="Source" assertions="54" time="0.024">
</testcase> </testcase>
<testcase classname="getActiveEffects" name="getActiveEffects" assertions="3" time="0.017"> <testcase classname="getActiveEffects" name="getActiveEffects" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="getActiveSourceCount" name="getActiveSourceCount" assertions="3" time="0.019"> <testcase classname="getActiveSourceCount" name="getActiveSourceCount" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="getDistanceModel" name="getDistanceModel" assertions="3" time="0.017"> <testcase classname="getDistanceModel" name="getDistanceModel" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="getDopplerScale" name="getDopplerScale" assertions="2" time="0.018"> <testcase classname="getDopplerScale" name="getDopplerScale" assertions="2" time="0.019">
</testcase> </testcase>
<testcase classname="getEffect" name="getEffect" assertions="4" time="0.018"> <testcase classname="getEffect" name="getEffect" assertions="4" time="0.019">
</testcase> </testcase>
<testcase classname="getMaxSceneEffects" name="getMaxSceneEffects" assertions="1" time="0.019"> <testcase classname="getMaxSceneEffects" name="getMaxSceneEffects" assertions="1" time="0.016">
</testcase> </testcase>
<testcase classname="getMaxSourceEffects" name="getMaxSourceEffects" assertions="1" time="0.018"> <testcase classname="getMaxSourceEffects" name="getMaxSourceEffects" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getOrientation" name="getOrientation" assertions="6" time="0.018"> <testcase classname="getOrientation" name="getOrientation" assertions="6" time="0.019">
</testcase> </testcase>
<testcase classname="getPosition" name="getPosition" assertions="3" time="0.018"> <testcase classname="getPosition" name="getPosition" assertions="3" time="0.019">
</testcase> </testcase>
<testcase classname="getRecordingDevices" name="getRecordingDevices" assertions="1" time="0.020"> <testcase classname="getRecordingDevices" name="getRecordingDevices" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getVelocity" name="getVelocity" assertions="3" time="0.017"> <testcase classname="getVelocity" name="getVelocity" assertions="3" time="0.019">
</testcase> </testcase>
<testcase classname="getVolume" name="getVolume" assertions="1" time="0.018"> <testcase classname="getVolume" name="getVolume" assertions="1" time="0.018">
</testcase> </testcase>
@@ -38,15 +38,15 @@
</testcase> </testcase>
<testcase classname="play" name="play" assertions="1" time="0.018"> <testcase classname="play" name="play" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="setDistanceModel" name="setDistanceModel" assertions="7" time="0.016"> <testcase classname="setDistanceModel" name="setDistanceModel" assertions="7" time="0.017">
</testcase> </testcase>
<testcase classname="setDopplerScale" name="setDopplerScale" assertions="2" time="0.017"> <testcase classname="setDopplerScale" name="setDopplerScale" assertions="2" time="0.019">
</testcase> </testcase>
<testcase classname="setEffect" name="setEffect" assertions="3" time="0.018"> <testcase classname="setEffect" name="setEffect" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="setMixWithSystem" name="setMixWithSystem" assertions="1" time="0.018"> <testcase classname="setMixWithSystem" name="setMixWithSystem" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="setOrientation" name="setOrientation" assertions="6" time="0.017"> <testcase classname="setOrientation" name="setOrientation" assertions="6" time="0.018">
</testcase> </testcase>
<testcase classname="setPosition" name="setPosition" assertions="3" time="0.017"> <testcase classname="setPosition" name="setPosition" assertions="3" time="0.017">
</testcase> </testcase>
@@ -54,108 +54,108 @@
</testcase> </testcase>
<testcase classname="setVolume" name="setVolume" assertions="1" time="0.018"> <testcase classname="setVolume" name="setVolume" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="stop" name="stop" assertions="2" time="0.017"> <testcase classname="stop" name="stop" assertions="2" time="0.019">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.data" tests="12" failures="0" skipped="0" time="0.205"> <testsuite name="love.data" tests="12" failures="0" skipped="0" time="0.209">
<testcase classname="ByteData" name="ByteData" assertions="10" time="0.019"> <testcase classname="ByteData" name="ByteData" assertions="10" time="0.015">
</testcase> </testcase>
<testcase classname="CompressedData" name="CompressedData" assertions="12" time="0.017"> <testcase classname="CompressedData" name="CompressedData" assertions="12" time="0.018">
</testcase> </testcase>
<testcase classname="compress" name="compress" assertions="45" time="0.018"> <testcase classname="compress" name="compress" assertions="45" time="0.019">
</testcase> </testcase>
<testcase classname="decode" name="decode" assertions="4" time="0.016"> <testcase classname="decode" name="decode" assertions="4" time="0.014">
</testcase> </testcase>
<testcase classname="decompress" name="decompress" assertions="18" time="0.015"> <testcase classname="decompress" name="decompress" assertions="18" time="0.018">
</testcase> </testcase>
<testcase classname="encode" name="encode" assertions="15" time="0.016"> <testcase classname="encode" name="encode" assertions="15" time="0.019">
</testcase> </testcase>
<testcase classname="getPackedSize" name="getPackedSize" assertions="3" time="0.017"> <testcase classname="getPackedSize" name="getPackedSize" assertions="3" time="0.019">
</testcase> </testcase>
<testcase classname="hash" name="hash" assertions="6" time="0.016"> <testcase classname="hash" name="hash" assertions="6" time="0.016">
</testcase> </testcase>
<testcase classname="newByteData" name="newByteData" assertions="3" time="0.017"> <testcase classname="newByteData" name="newByteData" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newDataView" name="newDataView" assertions="3" time="0.018"> <testcase classname="newDataView" name="newDataView" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="pack" name="pack" assertions="4" time="0.018"> <testcase classname="pack" name="pack" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="unpack" name="unpack" assertions="3" time="0.018"> <testcase classname="unpack" name="unpack" assertions="3" time="0.018">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.event" tests="4" failures="0" skipped="2" time="0.102"> <testsuite name="love.event" tests="4" failures="0" skipped="2" time="0.103">
<testcase classname="clear" name="clear" assertions="1" time="0.017"> <testcase classname="clear" name="clear" assertions="1" time="0.016">
</testcase> </testcase>
<testcase classname="poll" name="poll" assertions="1" time="0.017"> <testcase classname="poll" name="poll" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="pump" name="pump" assertions="0" time="0.016"> <testcase classname="pump" name="pump" assertions="0" time="0.018">
<skipped message="used internally" /> <skipped message="used internally" />
</testcase> </testcase>
<testcase classname="push" name="push" assertions="1" time="0.017"> <testcase classname="push" name="push" assertions="1" time="0.016">
</testcase> </testcase>
<testcase classname="quit" name="quit" assertions="1" time="0.017"> <testcase classname="quit" name="quit" assertions="1" time="0.016">
</testcase> </testcase>
<testcase classname="wait" name="wait" assertions="0" time="0.017"> <testcase classname="wait" name="wait" assertions="0" time="0.019">
<skipped message="used internally" /> <skipped message="used internally" />
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.filesystem" tests="29" failures="0" skipped="2" time="0.530"> <testsuite name="love.filesystem" tests="29" failures="0" skipped="2" time="0.550">
<testcase classname="File" name="File" assertions="36" time="0.020"> <testcase classname="File" name="File" assertions="36" time="0.019">
</testcase> </testcase>
<testcase classname="FileData" name="FileData" assertions="12" time="0.016"> <testcase classname="FileData" name="FileData" assertions="12" time="0.017">
</testcase> </testcase>
<testcase classname="append" name="append" assertions="6" time="0.018"> <testcase classname="append" name="append" assertions="6" time="0.020">
</testcase> </testcase>
<testcase classname="areSymlinksEnabled" name="areSymlinksEnabled" assertions="1" time="0.016"> <testcase classname="areSymlinksEnabled" name="areSymlinksEnabled" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="createDirectory" name="createDirectory" assertions="3" time="0.017"> <testcase classname="createDirectory" name="createDirectory" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="getAppdataDirectory" name="getAppdataDirectory" assertions="1" time="0.016"> <testcase classname="getAppdataDirectory" name="getAppdataDirectory" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getCRequirePath" name="getCRequirePath" assertions="1" time="0.017"> <testcase classname="getCRequirePath" name="getCRequirePath" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getDirectoryItems" name="getDirectoryItems" assertions="2" time="0.017"> <testcase classname="getDirectoryItems" name="getDirectoryItems" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="getIdentity" name="getIdentity" assertions="1" time="0.017"> <testcase classname="getIdentity" name="getIdentity" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getInfo" name="getInfo" assertions="3" time="0.018"> <testcase classname="getInfo" name="getInfo" assertions="3" time="0.019">
</testcase> </testcase>
<testcase classname="getRealDirectory" name="getRealDirectory" assertions="1" time="0.017"> <testcase classname="getRealDirectory" name="getRealDirectory" assertions="1" time="0.019">
</testcase> </testcase>
<testcase classname="getRequirePath" name="getRequirePath" assertions="1" time="0.017"> <testcase classname="getRequirePath" name="getRequirePath" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getSaveDirectory" name="getSaveDirectory" assertions="1" time="0.016"> <testcase classname="getSaveDirectory" name="getSaveDirectory" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getSource" name="getSource" assertions="0" time="0.018"> <testcase classname="getSource" name="getSource" assertions="0" time="0.017">
<skipped message="used internally" /> <skipped message="used internally" />
</testcase> </testcase>
<testcase classname="getSourceBaseDirectory" name="getSourceBaseDirectory" assertions="1" time="0.016"> <testcase classname="getSourceBaseDirectory" name="getSourceBaseDirectory" assertions="1" time="0.020">
</testcase> </testcase>
<testcase classname="getUserDirectory" name="getUserDirectory" assertions="1" time="0.017"> <testcase classname="getUserDirectory" name="getUserDirectory" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getWorkingDirectory" name="getWorkingDirectory" assertions="1" time="0.016"> <testcase classname="getWorkingDirectory" name="getWorkingDirectory" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="isFused" name="isFused" assertions="1" time="0.017"> <testcase classname="isFused" name="isFused" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="lines" name="lines" assertions="6" time="0.018"> <testcase classname="lines" name="lines" assertions="6" time="0.020">
</testcase> </testcase>
<testcase classname="load" name="load" assertions="4" time="0.017"> <testcase classname="load" name="load" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="mount" name="mount" assertions="5" time="0.018"> <testcase classname="mount" name="mount" assertions="5" time="0.018">
</testcase> </testcase>
<testcase classname="newFileData" name="newFileData" assertions="1" time="0.018"> <testcase classname="newFileData" name="newFileData" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="openFile" name="openFile" assertions="4" time="0.016"> <testcase classname="openFile" name="openFile" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="read" name="read" assertions="6" time="0.016"> <testcase classname="read" name="read" assertions="6" time="0.017">
</testcase> </testcase>
<testcase classname="remove" name="remove" assertions="5" time="0.019"> <testcase classname="remove" name="remove" assertions="5" time="0.018">
</testcase> </testcase>
<testcase classname="setCRequirePath" name="setCRequirePath" assertions="1" time="0.017"> <testcase classname="setCRequirePath" name="setCRequirePath" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="setIdentity" name="setIdentity" assertions="1" time="0.017"> <testcase classname="setIdentity" name="setIdentity" assertions="1" time="0.015">
</testcase> </testcase>
<testcase classname="setRequirePath" name="setRequirePath" assertions="1" time="0.017"> <testcase classname="setRequirePath" name="setRequirePath" assertions="1" time="0.016">
</testcase> </testcase>
<testcase classname="setSource" name="setSource" assertions="0" time="0.016"> <testcase classname="setSource" name="setSource" assertions="0" time="0.016">
<skipped message="used internally" /> <skipped message="used internally" />
@@ -165,72 +165,71 @@
<testcase classname="write" name="write" assertions="3" time="0.017"> <testcase classname="write" name="write" assertions="3" time="0.017">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.font" tests="6" failures="1" skipped="0" time="0.121"> <testsuite name="love.font" tests="7" failures="0" skipped="0" time="0.124">
<testcase classname="GlyphData" name="GlyphData" assertions="19" time="0.018"> <testcase classname="GlyphData" name="GlyphData" assertions="17" time="0.016">
<failure message="assert 8 [check glyph number] expected '97' got '0'">assert 8 [check glyph number] expected '97' got '0'</failure>
</testcase> </testcase>
<testcase classname="Rasterizer" name="Rasterizer" assertions="13" time="0.018"> <testcase classname="Rasterizer" name="Rasterizer" assertions="13" time="0.016">
</testcase> </testcase>
<testcase classname="newBMFontRasterizer" name="newBMFontRasterizer" assertions="3" time="0.018"> <testcase classname="newBMFontRasterizer" name="newBMFontRasterizer" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newGlyphData" name="newGlyphData" assertions="3" time="0.018"> <testcase classname="newGlyphData" name="newGlyphData" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newImageRasterizer" name="newImageRasterizer" assertions="3" time="0.017"> <testcase classname="newImageRasterizer" name="newImageRasterizer" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newRasterizer" name="newRasterizer" assertions="3" time="0.016"> <testcase classname="newRasterizer" name="newRasterizer" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newTrueTypeRasterizer" name="newTrueTypeRasterizer" assertions="6" time="0.016"> <testcase classname="newTrueTypeRasterizer" name="newTrueTypeRasterizer" assertions="6" time="0.020">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.graphics" tests="102" failures="0" skipped="3" time="3.232"> <testsuite name="love.graphics" tests="102" failures="0" skipped="3" time="3.231">
<testcase classname="Canvas" name="Canvas" assertions="44" time="0.020"> <testcase classname="Canvas" name="Canvas" assertions="44" time="0.019">
</testcase> </testcase>
<testcase classname="Font" name="Font" assertions="90" time="0.024"> <testcase classname="Font" name="Font" assertions="90" time="0.021">
</testcase> </testcase>
<testcase classname="Image" name="Image" assertions="40" time="0.018"> <testcase classname="Image" name="Image" assertions="40" time="0.020">
</testcase> </testcase>
<testcase classname="Mesh" name="Mesh" assertions="0" time="0.016"> <testcase classname="Mesh" name="Mesh" assertions="0" time="0.018">
<skipped message="test class needs writing" /> <skipped message="test class needs writing" />
</testcase> </testcase>
<testcase classname="ParticleSystem" name="ParticleSystem" assertions="0" time="0.017"> <testcase classname="ParticleSystem" name="ParticleSystem" assertions="0" time="0.017">
<skipped message="test class needs writing" /> <skipped message="test class needs writing" />
</testcase> </testcase>
<testcase classname="Quad" name="Quad" assertions="47" time="0.019"> <testcase classname="Quad" name="Quad" assertions="47" time="0.018">
</testcase> </testcase>
<testcase classname="Shader" name="Shader" assertions="39" time="0.031"> <testcase classname="Shader" name="Shader" assertions="39" time="0.029">
</testcase> </testcase>
<testcase classname="SpriteBatch" name="SpriteBatch" assertions="203" time="0.030"> <testcase classname="SpriteBatch" name="SpriteBatch" assertions="203" time="0.027">
</testcase> </testcase>
<testcase classname="Text" name="Text" assertions="90" time="0.024"> <testcase classname="Text" name="Text" assertions="90" time="0.018">
</testcase> </testcase>
<testcase classname="Video" name="Video" assertions="48" time="1.040"> <testcase classname="Video" name="Video" assertions="48" time="1.040">
</testcase> </testcase>
<testcase classname="applyTransform" name="applyTransform" assertions="4" time="0.011"> <testcase classname="applyTransform" name="applyTransform" assertions="4" time="0.006">
</testcase> </testcase>
<testcase classname="arc" name="arc" assertions="264" time="0.019"> <testcase classname="arc" name="arc" assertions="264" time="0.019">
</testcase> </testcase>
<testcase classname="captureScreenshot" name="captureScreenshot" assertions="1" time="0.184"> <testcase classname="captureScreenshot" name="captureScreenshot" assertions="1" time="0.183">
</testcase> </testcase>
<testcase classname="circle" name="circle" assertions="192" time="0.020"> <testcase classname="circle" name="circle" assertions="192" time="0.020">
</testcase> </testcase>
<testcase classname="clear" name="clear" assertions="20" time="0.022"> <testcase classname="clear" name="clear" assertions="20" time="0.031">
</testcase> </testcase>
<testcase classname="discard" name="discard" assertions="0" time="0.017"> <testcase classname="discard" name="discard" assertions="0" time="0.016">
<skipped message="cant test this worked" /> <skipped message="cant test this worked" />
</testcase> </testcase>
<testcase classname="draw" name="draw" assertions="112" time="0.018"> <testcase classname="draw" name="draw" assertions="112" time="0.017">
</testcase> </testcase>
<testcase classname="drawInstanced" name="drawInstanced" assertions="16" time="0.030"> <testcase classname="drawInstanced" name="drawInstanced" assertions="16" time="0.030">
</testcase> </testcase>
<testcase classname="drawLayer" name="drawLayer" assertions="144" time="0.021"> <testcase classname="drawLayer" name="drawLayer" assertions="144" time="0.025">
</testcase> </testcase>
<testcase classname="ellipse" name="ellipse" assertions="80" time="0.019"> <testcase classname="ellipse" name="ellipse" assertions="80" time="0.017">
</testcase> </testcase>
<testcase classname="flushBatch" name="flushBatch" assertions="1" time="0.018"> <testcase classname="flushBatch" name="flushBatch" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getBackgroundColor" name="getBackgroundColor" assertions="8" time="0.018"> <testcase classname="getBackgroundColor" name="getBackgroundColor" assertions="8" time="0.018">
</testcase> </testcase>
<testcase classname="getBlendMode" name="getBlendMode" assertions="4" time="0.017"> <testcase classname="getBlendMode" name="getBlendMode" assertions="4" time="0.019">
</testcase> </testcase>
<testcase classname="getCanvas" name="getCanvas" assertions="4" time="0.018"> <testcase classname="getCanvas" name="getCanvas" assertions="4" time="0.018">
</testcase> </testcase>
@@ -240,297 +239,296 @@
</testcase> </testcase>
<testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.018"> <testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getDefaultFilter" name="getDefaultFilter" assertions="3" time="0.016"> <testcase classname="getDefaultFilter" name="getDefaultFilter" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="getDepthMode" name="getDepthMode" assertions="2" time="0.016"> <testcase classname="getDepthMode" name="getDepthMode" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="getDimensions" name="getDimensions" assertions="2" time="0.016"> <testcase classname="getDimensions" name="getDimensions" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="getFont" name="getFont" assertions="3" time="0.018"> <testcase classname="getFont" name="getFont" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="getFrontFaceWinding" name="getFrontFaceWinding" assertions="2" time="0.017"> <testcase classname="getFrontFaceWinding" name="getFrontFaceWinding" assertions="2" time="0.019">
</testcase> </testcase>
<testcase classname="getHeight" name="getHeight" assertions="1" time="0.017"> <testcase classname="getHeight" name="getHeight" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getLineJoin" name="getLineJoin" assertions="2" time="0.018"> <testcase classname="getLineJoin" name="getLineJoin" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="getLineStyle" name="getLineStyle" assertions="2" time="0.017"> <testcase classname="getLineStyle" name="getLineStyle" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="getLineWidth" name="getLineWidth" assertions="2" time="0.016"> <testcase classname="getLineWidth" name="getLineWidth" assertions="2" time="0.019">
</testcase> </testcase>
<testcase classname="getMeshCullMode" name="getMeshCullMode" assertions="2" time="0.017"> <testcase classname="getMeshCullMode" name="getMeshCullMode" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="getPixelDimensions" name="getPixelDimensions" assertions="2" time="0.016"> <testcase classname="getPixelDimensions" name="getPixelDimensions" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="getPixelHeight" name="getPixelHeight" assertions="1" time="0.018"> <testcase classname="getPixelHeight" name="getPixelHeight" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getPixelWidth" name="getPixelWidth" assertions="1" time="0.013"> <testcase classname="getPixelWidth" name="getPixelWidth" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getPointSize" name="getPointSize" assertions="2" time="0.018"> <testcase classname="getPointSize" name="getPointSize" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="getRendererInfo" name="getRendererInfo" assertions="4" time="0.017"> <testcase classname="getRendererInfo" name="getRendererInfo" assertions="4" time="0.019">
</testcase> </testcase>
<testcase classname="getScissor" name="getScissor" assertions="8" time="0.016"> <testcase classname="getScissor" name="getScissor" assertions="8" time="0.017">
</testcase> </testcase>
<testcase classname="getShader" name="getShader" assertions="1" time="0.016"> <testcase classname="getShader" name="getShader" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getStackDepth" name="getStackDepth" assertions="4" time="0.017"> <testcase classname="getStackDepth" name="getStackDepth" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="getStats" name="getStats" assertions="7" time="0.018"> <testcase classname="getStats" name="getStats" assertions="7" time="0.017">
</testcase> </testcase>
<testcase classname="getStencilMode" name="getStencilMode" assertions="6" time="0.016"> <testcase classname="getStencilMode" name="getStencilMode" assertions="6" time="0.019">
</testcase> </testcase>
<testcase classname="getSupported" name="getSupported" assertions="17" time="0.018"> <testcase classname="getSupported" name="getSupported" assertions="17" time="0.016">
</testcase> </testcase>
<testcase classname="getSystemLimits" name="getSystemLimits" assertions="13" time="0.017"> <testcase classname="getSystemLimits" name="getSystemLimits" assertions="13" time="0.017">
</testcase> </testcase>
<testcase classname="getTextureFormats" name="getTextureFormats" assertions="79" time="0.017"> <testcase classname="getTextureFormats" name="getTextureFormats" assertions="79" time="0.019">
</testcase> </testcase>
<testcase classname="getTextureTypes" name="getTextureTypes" assertions="4" time="0.017"> <testcase classname="getTextureTypes" name="getTextureTypes" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="getWidth" name="getWidth" assertions="1" time="0.016"> <testcase classname="getWidth" name="getWidth" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="intersectScissor" name="intersectScissor" assertions="20" time="0.018"> <testcase classname="intersectScissor" name="intersectScissor" assertions="20" time="0.019">
</testcase> </testcase>
<testcase classname="inverseTransformPoint" name="inverseTransformPoint" assertions="4" time="0.016"> <testcase classname="inverseTransformPoint" name="inverseTransformPoint" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="isActive" name="isActive" assertions="1" time="0.018"> <testcase classname="isActive" name="isActive" assertions="1" time="0.019">
</testcase> </testcase>
<testcase classname="isGammaCorrect" name="isGammaCorrect" assertions="1" time="0.016"> <testcase classname="isGammaCorrect" name="isGammaCorrect" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="isWireframe" name="isWireframe" assertions="2" time="0.017"> <testcase classname="isWireframe" name="isWireframe" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="line" name="line" assertions="64" time="0.019"> <testcase classname="line" name="line" assertions="64" time="0.020">
</testcase> </testcase>
<testcase classname="newArrayImage" name="newArrayImage" assertions="3" time="0.016"> <testcase classname="newArrayImage" name="newArrayImage" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newCanvas" name="newCanvas" assertions="6" time="0.016"> <testcase classname="newCanvas" name="newCanvas" assertions="6" time="0.015">
</testcase> </testcase>
<testcase classname="newCubeImage" name="newCubeImage" assertions="3" time="0.018"> <testcase classname="newCubeImage" name="newCubeImage" assertions="3" time="0.019">
</testcase> </testcase>
<testcase classname="newFont" name="newFont" assertions="6" time="0.016"> <testcase classname="newFont" name="newFont" assertions="6" time="0.019">
</testcase> </testcase>
<testcase classname="newImage" name="newImage" assertions="3" time="0.016"> <testcase classname="newImage" name="newImage" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newImageFont" name="newImageFont" assertions="3" time="0.016"> <testcase classname="newImageFont" name="newImageFont" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newMesh" name="newMesh" assertions="3" time="0.016"> <testcase classname="newMesh" name="newMesh" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newParticleSystem" name="newParticleSystem" assertions="3" time="0.018"> <testcase classname="newParticleSystem" name="newParticleSystem" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newQuad" name="newQuad" assertions="3" time="0.020"> <testcase classname="newQuad" name="newQuad" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newShader" name="newShader" assertions="3" time="0.024"> <testcase classname="newShader" name="newShader" assertions="3" time="0.023">
</testcase> </testcase>
<testcase classname="newSpriteBatch" name="newSpriteBatch" assertions="3" time="0.017"> <testcase classname="newSpriteBatch" name="newSpriteBatch" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newTextBatch" name="newTextBatch" assertions="3" time="0.019"> <testcase classname="newTextBatch" name="newTextBatch" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newVideo" name="newVideo" assertions="3" time="0.021"> <testcase classname="newVideo" name="newVideo" assertions="3" time="0.021">
</testcase> </testcase>
<testcase classname="newVolumeImage" name="newVolumeImage" assertions="3" time="0.018"> <testcase classname="newVolumeImage" name="newVolumeImage" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="origin" name="origin" assertions="4" time="0.019"> <testcase classname="origin" name="origin" assertions="4" time="0.018">
</testcase> </testcase>
<testcase classname="points" name="points" assertions="48" time="0.022"> <testcase classname="points" name="points" assertions="48" time="0.020">
</testcase> </testcase>
<testcase classname="polygon" name="polygon" assertions="56" time="0.018"> <testcase classname="polygon" name="polygon" assertions="56" time="0.018">
</testcase> </testcase>
<testcase classname="pop" name="pop" assertions="4" time="0.032"> <testcase classname="pop" name="pop" assertions="4" time="0.019">
</testcase> </testcase>
<testcase classname="print" name="print" assertions="148" time="0.019"> <testcase classname="print" name="print" assertions="148" time="0.019">
</testcase> </testcase>
<testcase classname="printf" name="printf" assertions="180" time="0.018"> <testcase classname="printf" name="printf" assertions="180" time="0.018">
</testcase> </testcase>
<testcase classname="push" name="push" assertions="4" time="0.018"> <testcase classname="push" name="push" assertions="4" time="0.026">
</testcase> </testcase>
<testcase classname="rectangle" name="rectangle" assertions="116" time="0.032"> <testcase classname="rectangle" name="rectangle" assertions="116" time="0.025">
</testcase> </testcase>
<testcase classname="replaceTransform" name="replaceTransform" assertions="4" time="0.024"> <testcase classname="replaceTransform" name="replaceTransform" assertions="4" time="0.019">
</testcase> </testcase>
<testcase classname="reset" name="reset" assertions="3" time="0.016"> <testcase classname="reset" name="reset" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="rotate" name="rotate" assertions="16" time="0.036"> <testcase classname="rotate" name="rotate" assertions="16" time="0.030">
</testcase> </testcase>
<testcase classname="scale" name="scale" assertions="16" time="0.014"> <testcase classname="scale" name="scale" assertions="16" time="0.013">
</testcase> </testcase>
<testcase classname="setBackgroundColor" name="setBackgroundColor" assertions="4" time="0.018"> <testcase classname="setBackgroundColor" name="setBackgroundColor" assertions="4" time="0.017">
</testcase> </testcase>
<testcase classname="setBlendMode" name="setBlendMode" assertions="16" time="0.027"> <testcase classname="setBlendMode" name="setBlendMode" assertions="16" time="0.028">
</testcase> </testcase>
<testcase classname="setCanvas" name="setCanvas" assertions="19" time="0.018"> <testcase classname="setCanvas" name="setCanvas" assertions="19" time="0.018">
</testcase> </testcase>
<testcase classname="setColor" name="setColor" assertions="68" time="0.018"> <testcase classname="setColor" name="setColor" assertions="68" time="0.017">
</testcase> </testcase>
<testcase classname="setColorMask" name="setColorMask" assertions="20" time="0.023"> <testcase classname="setColorMask" name="setColorMask" assertions="20" time="0.034">
</testcase> </testcase>
<testcase classname="setDefaultFilter" name="setDefaultFilter" assertions="3" time="0.016"> <testcase classname="setDefaultFilter" name="setDefaultFilter" assertions="3" time="0.014">
</testcase> </testcase>
<testcase classname="setDepthMode" name="setDepthMode" assertions="8" time="0.016"> <testcase classname="setDepthMode" name="setDepthMode" assertions="8" time="0.018">
</testcase> </testcase>
<testcase classname="setFont" name="setFont" assertions="40" time="0.030"> <testcase classname="setFont" name="setFont" assertions="40" time="0.029">
</testcase> </testcase>
<testcase classname="setFrontFaceWinding" name="setFrontFaceWinding" assertions="2" time="0.018"> <testcase classname="setFrontFaceWinding" name="setFrontFaceWinding" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="setLineJoin" name="setLineJoin" assertions="16" time="0.019"> <testcase classname="setLineJoin" name="setLineJoin" assertions="16" time="0.019">
</testcase> </testcase>
<testcase classname="setLineStyle" name="setLineStyle" assertions="24" time="0.029"> <testcase classname="setLineStyle" name="setLineStyle" assertions="24" time="0.033">
</testcase> </testcase>
<testcase classname="setLineWidth" name="setLineWidth" assertions="72" time="0.021"> <testcase classname="setLineWidth" name="setLineWidth" assertions="72" time="0.023">
</testcase> </testcase>
<testcase classname="setMeshCullMode" name="setMeshCullMode" assertions="3" time="0.016"> <testcase classname="setMeshCullMode" name="setMeshCullMode" assertions="3" time="0.014">
</testcase> </testcase>
<testcase classname="setScissor" name="setScissor" assertions="32" time="0.034"> <testcase classname="setScissor" name="setScissor" assertions="32" time="0.027">
</testcase> </testcase>
<testcase classname="setShader" name="setShader" assertions="16" time="0.023"> <testcase classname="setShader" name="setShader" assertions="16" time="0.024">
</testcase> </testcase>
<testcase classname="setStencilMode" name="setStencilMode" assertions="32" time="0.019"> <testcase classname="setStencilMode" name="setStencilMode" assertions="32" time="0.019">
</testcase> </testcase>
<testcase classname="setWireframe" name="setWireframe" assertions="28" time="0.030"> <testcase classname="setWireframe" name="setWireframe" assertions="28" time="0.036">
</testcase> </testcase>
<testcase classname="shear" name="shear" assertions="32" time="0.022"> <testcase classname="shear" name="shear" assertions="32" time="0.022">
</testcase> </testcase>
<testcase classname="transformPoint" name="transformPoint" assertions="4" time="0.016"> <testcase classname="transformPoint" name="transformPoint" assertions="4" time="0.017">
</testcase> </testcase>
<testcase classname="translate" name="translate" assertions="16" time="0.031"> <testcase classname="translate" name="translate" assertions="16" time="0.017">
</testcase> </testcase>
<testcase classname="validateShader" name="validateShader" assertions="2" time="0.019"> <testcase classname="validateShader" name="validateShader" assertions="2" time="0.020">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.image" tests="5" failures="0" skipped="0" time="0.086"> <testsuite name="love.image" tests="5" failures="0" skipped="0" time="0.098">
<testcase classname="CompressedImageData" name="CompressedImageData" assertions="11" time="0.017"> <testcase classname="CompressedImageData" name="CompressedImageData" assertions="11" time="0.017">
</testcase> </testcase>
<testcase classname="ImageData" name="ImageData" assertions="14" time="0.018"> <testcase classname="ImageData" name="ImageData" assertions="14" time="0.036">
</testcase> </testcase>
<testcase classname="isCompressed" name="isCompressed" assertions="1" time="0.017"> <testcase classname="isCompressed" name="isCompressed" assertions="1" time="0.013">
</testcase> </testcase>
<testcase classname="newCompressedData" name="newCompressedData" assertions="3" time="0.018"> <testcase classname="newCompressedData" name="newCompressedData" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newImageData" name="newImageData" assertions="6" time="0.018"> <testcase classname="newImageData" name="newImageData" assertions="6" time="0.016">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.math" tests="20" failures="0" skipped="0" time="0.339"> <testsuite name="love.math" tests="20" failures="0" skipped="0" time="0.353">
<testcase classname="BezierCurve" name="BezierCurve" assertions="31" time="0.017"> <testcase classname="BezierCurve" name="BezierCurve" assertions="31" time="0.016">
</testcase> </testcase>
<testcase classname="RandomGenerator" name="RandomGenerator" assertions="10" time="0.017"> <testcase classname="RandomGenerator" name="RandomGenerator" assertions="10" time="0.018">
</testcase> </testcase>
<testcase classname="Transform" name="Transform" assertions="14" time="0.018"> <testcase classname="Transform" name="Transform" assertions="14" time="0.016">
</testcase> </testcase>
<testcase classname="colorFromBytes" name="colorFromBytes" assertions="12" time="0.018"> <testcase classname="colorFromBytes" name="colorFromBytes" assertions="12" time="0.017">
</testcase> </testcase>
<testcase classname="colorToBytes" name="colorToBytes" assertions="12" time="0.018"> <testcase classname="colorToBytes" name="colorToBytes" assertions="12" time="0.019">
</testcase> </testcase>
<testcase classname="gammaToLinear" name="gammaToLinear" assertions="3" time="0.017"> <testcase classname="gammaToLinear" name="gammaToLinear" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="getRandomSeed" name="getRandomSeed" assertions="2" time="0.016"> <testcase classname="getRandomSeed" name="getRandomSeed" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="getRandomState" name="getRandomState" assertions="1" time="0.016"> <testcase classname="getRandomState" name="getRandomState" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="isConvex" name="isConvex" assertions="2" time="0.017"> <testcase classname="isConvex" name="isConvex" assertions="2" time="0.018">
</testcase> </testcase>
<testcase classname="linearToGamma" name="linearToGamma" assertions="3" time="0.016"> <testcase classname="linearToGamma" name="linearToGamma" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newBezierCurve" name="newBezierCurve" assertions="3" time="0.016"> <testcase classname="newBezierCurve" name="newBezierCurve" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newRandomGenerator" name="newRandomGenerator" assertions="3" time="0.016"> <testcase classname="newRandomGenerator" name="newRandomGenerator" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newTransform" name="newTransform" assertions="3" time="0.017"> <testcase classname="newTransform" name="newTransform" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="perlinNoise" name="perlinNoise" assertions="4" time="0.017"> <testcase classname="perlinNoise" name="perlinNoise" assertions="4" time="0.019">
</testcase> </testcase>
<testcase classname="random" name="random" assertions="10" time="0.017"> <testcase classname="random" name="random" assertions="10" time="0.019">
</testcase> </testcase>
<testcase classname="randomNormal" name="randomNormal" assertions="1" time="0.018"> <testcase classname="randomNormal" name="randomNormal" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="setRandomSeed" name="setRandomSeed" assertions="2" time="0.016"> <testcase classname="setRandomSeed" name="setRandomSeed" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="setRandomState" name="setRandomState" assertions="1" time="0.016"> <testcase classname="setRandomState" name="setRandomState" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="simplexNoise" name="simplexNoise" assertions="4" time="0.016"> <testcase classname="simplexNoise" name="simplexNoise" assertions="4" time="0.017">
</testcase> </testcase>
<testcase classname="triangulate" name="triangulate" assertions="2" time="0.017"> <testcase classname="triangulate" name="triangulate" assertions="2" time="0.017">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.physics" tests="22" failures="0" skipped="4" time="0.434"> <testsuite name="love.physics" tests="23" failures="0" skipped="3" time="0.449">
<testcase classname="Body" name="Body" assertions="0" time="0.017"> <testcase classname="Body" name="Body" assertions="0" time="0.016">
<skipped message="test class needs writing" /> <skipped message="test class needs writing" />
</testcase> </testcase>
<testcase classname="Contact" name="Contact" assertions="0" time="0.017"> <testcase classname="Contact" name="Contact" assertions="0" time="0.017">
<skipped message="test class needs writing" /> <skipped message="test class needs writing" />
</testcase> </testcase>
<testcase classname="Joint" name="Joint" assertions="0" time="0.017"> <testcase classname="Joint" name="Joint" assertions="17" time="0.018">
<skipped message="test class needs writing" />
</testcase> </testcase>
<testcase classname="Shape" name="Shape" assertions="0" time="0.016"> <testcase classname="Shape" name="Shape" assertions="0" time="0.018">
<skipped message="test class needs writing" /> <skipped message="test class needs writing" />
</testcase> </testcase>
<testcase classname="World" name="World" assertions="33" time="0.016"> <testcase classname="World" name="World" assertions="33" time="0.016">
</testcase> </testcase>
<testcase classname="getDistance" name="getDistance" assertions="1" time="0.016"> <testcase classname="getDistance" name="getDistance" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getMeter" name="getMeter" assertions="1" time="0.017"> <testcase classname="getMeter" name="getMeter" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="newBody" name="newBody" assertions="3" time="0.016"> <testcase classname="newBody" name="newBody" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newChainShape" name="newChainShape" assertions="3" time="0.018"> <testcase classname="newChainShape" name="newChainShape" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newCircleShape" name="newCircleShape" assertions="3" time="0.016"> <testcase classname="newCircleShape" name="newCircleShape" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newDistanceJoint" name="newDistanceJoint" assertions="3" time="0.018"> <testcase classname="newDistanceJoint" name="newDistanceJoint" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newEdgeShape" name="newEdgeShape" assertions="3" time="0.018"> <testcase classname="newEdgeShape" name="newEdgeShape" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newFrictionJoint" name="newFrictionJoint" assertions="3" time="0.016"> <testcase classname="newFrictionJoint" name="newFrictionJoint" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newGearJoint" name="newGearJoint" assertions="3" time="0.016"> <testcase classname="newGearJoint" name="newGearJoint" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newMotorJoint" name="newMotorJoint" assertions="3" time="0.015"> <testcase classname="newMotorJoint" name="newMotorJoint" assertions="3" time="0.015">
</testcase> </testcase>
<testcase classname="newMouseJoint" name="newMouseJoint" assertions="3" time="0.017"> <testcase classname="newMouseJoint" name="newMouseJoint" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newPolygonShape" name="newPolygonShape" assertions="3" time="0.018"> <testcase classname="newPolygonShape" name="newPolygonShape" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newPrismaticJoint" name="newPrismaticJoint" assertions="3" time="0.016"> <testcase classname="newPrismaticJoint" name="newPrismaticJoint" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newPulleyJoint" name="newPulleyJoint" assertions="3" time="0.016"> <testcase classname="newPulleyJoint" name="newPulleyJoint" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newRectangleShape" name="newRectangleShape" assertions="6" time="0.017"> <testcase classname="newRectangleShape" name="newRectangleShape" assertions="6" time="0.018">
</testcase> </testcase>
<testcase classname="newRevoluteJoint" name="newRevoluteJoint" assertions="3" time="0.016"> <testcase classname="newRevoluteJoint" name="newRevoluteJoint" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newRopeJoint" name="newRopeJoint" assertions="3" time="0.018"> <testcase classname="newRopeJoint" name="newRopeJoint" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="newWeldJoint" name="newWeldJoint" assertions="3" time="0.018"> <testcase classname="newWeldJoint" name="newWeldJoint" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newWheelJoint" name="newWheelJoint" assertions="3" time="0.016"> <testcase classname="newWheelJoint" name="newWheelJoint" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="newWorld" name="newWorld" assertions="3" time="0.016"> <testcase classname="newWorld" name="newWorld" assertions="3" time="0.018">
</testcase> </testcase>
<testcase classname="setMeter" name="setMeter" assertions="2" time="0.016"> <testcase classname="setMeter" name="setMeter" assertions="2" time="0.018">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.sound" tests="4" failures="0" skipped="0" time="0.071"> <testsuite name="love.sound" tests="4" failures="0" skipped="0" time="0.074">
<testcase classname="Decoder" name="Decoder" assertions="14" time="0.018"> <testcase classname="Decoder" name="Decoder" assertions="14" time="0.017">
</testcase> </testcase>
<testcase classname="SoundData" name="SoundData" assertions="20" time="0.018"> <testcase classname="SoundData" name="SoundData" assertions="20" time="0.019">
</testcase> </testcase>
<testcase classname="newDecoder" name="newDecoder" assertions="3" time="0.017"> <testcase classname="newDecoder" name="newDecoder" assertions="3" time="0.019">
</testcase> </testcase>
<testcase classname="newSoundData" name="newSoundData" assertions="6" time="0.018"> <testcase classname="newSoundData" name="newSoundData" assertions="6" time="0.019">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.system" tests="6" failures="0" skipped="2" time="0.139"> <testsuite name="love.system" tests="6" failures="0" skipped="2" time="0.144">
<testcase classname="getClipboardText" name="getClipboardText" assertions="1" time="0.017"> <testcase classname="getClipboardText" name="getClipboardText" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getOS" name="getOS" assertions="1" time="0.018"> <testcase classname="getOS" name="getOS" assertions="1" time="0.019">
</testcase> </testcase>
<testcase classname="getPowerInfo" name="getPowerInfo" assertions="1" time="0.017"> <testcase classname="getPowerInfo" name="getPowerInfo" assertions="1" time="0.019">
</testcase> </testcase>
<testcase classname="getProcessorCount" name="getProcessorCount" assertions="1" time="0.018"> <testcase classname="getProcessorCount" name="getProcessorCount" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="hasBackgroundMusic" name="hasBackgroundMusic" assertions="1" time="0.017"> <testcase classname="hasBackgroundMusic" name="hasBackgroundMusic" assertions="1" time="0.019">
</testcase> </testcase>
<testcase classname="openURL" name="openURL" assertions="0" time="0.016"> <testcase classname="openURL" name="openURL" assertions="0" time="0.018">
<skipped message="cant test this worked" /> <skipped message="cant test this worked" />
</testcase> </testcase>
<testcase classname="setClipboardText" name="setClipboardText" assertions="1" time="0.017"> <testcase classname="setClipboardText" name="setClipboardText" assertions="1" time="0.017">
@@ -539,103 +537,103 @@
<skipped message="cant test this worked" /> <skipped message="cant test this worked" />
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.thread" tests="5" failures="0" skipped="0" time="0.376"> <testsuite name="love.thread" tests="5" failures="0" skipped="0" time="0.377">
<testcase classname="Channel" name="Channel" assertions="10" time="0.235"> <testcase classname="Channel" name="Channel" assertions="10" time="0.230">
</testcase> </testcase>
<testcase classname="Thread" name="Thread" assertions="7" time="0.091"> <testcase classname="Thread" name="Thread" assertions="7" time="0.099">
</testcase> </testcase>
<testcase classname="getChannel" name="getChannel" assertions="3" time="0.018"> <testcase classname="getChannel" name="getChannel" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newChannel" name="newChannel" assertions="3" time="0.015"> <testcase classname="newChannel" name="newChannel" assertions="3" time="0.016">
</testcase> </testcase>
<testcase classname="newThread" name="newThread" assertions="3" time="0.016"> <testcase classname="newThread" name="newThread" assertions="3" time="0.017">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.timer" tests="6" failures="0" skipped="0" time="2.091"> <testsuite name="love.timer" tests="6" failures="0" skipped="0" time="2.093">
<testcase classname="getAverageDelta" name="getAverageDelta" assertions="1" time="0.017"> <testcase classname="getAverageDelta" name="getAverageDelta" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getDelta" name="getDelta" assertions="1" time="0.017"> <testcase classname="getDelta" name="getDelta" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getFPS" name="getFPS" assertions="1" time="0.016"> <testcase classname="getFPS" name="getFPS" assertions="1" time="0.015">
</testcase> </testcase>
<testcase classname="getTime" name="getTime" assertions="1" time="1.017"> <testcase classname="getTime" name="getTime" assertions="1" time="1.019">
</testcase> </testcase>
<testcase classname="sleep" name="sleep" assertions="1" time="1.012"> <testcase classname="sleep" name="sleep" assertions="1" time="1.011">
</testcase> </testcase>
<testcase classname="step" name="step" assertions="1" time="0.012"> <testcase classname="step" name="step" assertions="1" time="0.011">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.video" tests="2" failures="0" skipped="0" time="0.039"> <testsuite name="love.video" tests="2" failures="0" skipped="0" time="0.040">
<testcase classname="VideoStream" name="VideoStream" assertions="9" time="0.019"> <testcase classname="VideoStream" name="VideoStream" assertions="9" time="0.019">
</testcase> </testcase>
<testcase classname="newVideoStream" name="newVideoStream" assertions="3" time="0.020"> <testcase classname="newVideoStream" name="newVideoStream" assertions="3" time="0.021">
</testcase> </testcase>
</testsuite> </testsuite>
<testsuite name="love.window" tests="34" failures="0" skipped="2" time="6.015"> <testsuite name="love.window" tests="34" failures="0" skipped="2" time="5.986">
<testcase classname="close" name="close" assertions="2" time="0.048"> <testcase classname="close" name="close" assertions="2" time="0.045">
</testcase> </testcase>
<testcase classname="fromPixels" name="fromPixels" assertions="1" time="0.002"> <testcase classname="fromPixels" name="fromPixels" assertions="1" time="0.002">
</testcase> </testcase>
<testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.002"> <testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.002">
</testcase> </testcase>
<testcase classname="getDesktopDimensions" name="getDesktopDimensions" assertions="2" time="0.017"> <testcase classname="getDesktopDimensions" name="getDesktopDimensions" assertions="2" time="0.002">
</testcase> </testcase>
<testcase classname="getDisplayCount" name="getDisplayCount" assertions="1" time="0.017"> <testcase classname="getDisplayCount" name="getDisplayCount" assertions="1" time="0.015">
</testcase> </testcase>
<testcase classname="getDisplayName" name="getDisplayName" assertions="1" time="0.016"> <testcase classname="getDisplayName" name="getDisplayName" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="getDisplayOrientation" name="getDisplayOrientation" assertions="1" time="0.017"> <testcase classname="getDisplayOrientation" name="getDisplayOrientation" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getFullscreen" name="getFullscreen" assertions="2" time="1.345"> <testcase classname="getFullscreen" name="getFullscreen" assertions="2" time="1.346">
</testcase> </testcase>
<testcase classname="getFullscreenModes" name="getFullscreenModes" assertions="1" time="0.012"> <testcase classname="getFullscreenModes" name="getFullscreenModes" assertions="1" time="0.014">
</testcase> </testcase>
<testcase classname="getIcon" name="getIcon" assertions="2" time="0.019"> <testcase classname="getIcon" name="getIcon" assertions="2" time="0.020">
</testcase> </testcase>
<testcase classname="getMode" name="getMode" assertions="3" time="0.016"> <testcase classname="getMode" name="getMode" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="getPosition" name="getPosition" assertions="2" time="0.017"> <testcase classname="getPosition" name="getPosition" assertions="2" time="0.017">
</testcase> </testcase>
<testcase classname="getSafeArea" name="getSafeArea" assertions="4" time="0.016"> <testcase classname="getSafeArea" name="getSafeArea" assertions="4" time="0.017">
</testcase> </testcase>
<testcase classname="getTitle" name="getTitle" assertions="1" time="0.017"> <testcase classname="getTitle" name="getTitle" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="getVSync" name="getVSync" assertions="1" time="0.015"> <testcase classname="getVSync" name="getVSync" assertions="1" time="0.017">
</testcase> </testcase>
<testcase classname="hasFocus" name="hasFocus" assertions="1" time="0.017"> <testcase classname="hasFocus" name="hasFocus" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="hasMouseFocus" name="hasMouseFocus" assertions="1" time="0.017"> <testcase classname="hasMouseFocus" name="hasMouseFocus" assertions="1" time="0.018">
</testcase> </testcase>
<testcase classname="isDisplaySleepEnabled" name="isDisplaySleepEnabled" assertions="3" time="0.016"> <testcase classname="isDisplaySleepEnabled" name="isDisplaySleepEnabled" assertions="3" time="0.017">
</testcase> </testcase>
<testcase classname="isMaximized" name="isMaximized" assertions="2" time="0.185"> <testcase classname="isMaximized" name="isMaximized" assertions="2" time="0.184">
</testcase> </testcase>
<testcase classname="isMinimized" name="isMinimized" assertions="2" time="0.730"> <testcase classname="isMinimized" name="isMinimized" assertions="2" time="0.728">
</testcase> </testcase>
<testcase classname="isOpen" name="isOpen" assertions="2" time="0.041"> <testcase classname="isOpen" name="isOpen" assertions="2" time="0.049">
</testcase> </testcase>
<testcase classname="isVisible" name="isVisible" assertions="2" time="0.029"> <testcase classname="isVisible" name="isVisible" assertions="2" time="0.024">
</testcase> </testcase>
<testcase classname="maximize" name="maximize" assertions="2" time="0.156"> <testcase classname="maximize" name="maximize" assertions="2" time="0.156">
</testcase> </testcase>
<testcase classname="minimize" name="minimize" assertions="2" time="0.731"> <testcase classname="minimize" name="minimize" assertions="2" time="0.731">
</testcase> </testcase>
<testcase classname="requestAttention" name="requestAttention" assertions="0" time="0.011"> <testcase classname="requestAttention" name="requestAttention" assertions="0" time="0.012">
<skipped message="cant test this worked" /> <skipped message="cant test this worked" />
</testcase> </testcase>
<testcase classname="restore" name="restore" assertions="1" time="0.883"> <testcase classname="restore" name="restore" assertions="1" time="0.864">
</testcase> </testcase>
<testcase classname="setDisplaySleepEnabled" name="setDisplaySleepEnabled" assertions="2" time="0.018"> <testcase classname="setDisplaySleepEnabled" name="setDisplaySleepEnabled" assertions="2" time="0.019">
</testcase> </testcase>
<testcase classname="setFullscreen" name="setFullscreen" assertions="2" time="1.339"> <testcase classname="setFullscreen" name="setFullscreen" assertions="2" time="1.336">
</testcase> </testcase>
<testcase classname="setIcon" name="setIcon" assertions="1" time="0.016"> <testcase classname="setIcon" name="setIcon" assertions="1" time="0.014">
</testcase> </testcase>
<testcase classname="setMode" name="setMode" assertions="4" time="0.022"> <testcase classname="setMode" name="setMode" assertions="4" time="0.022">
</testcase> </testcase>
<testcase classname="setPosition" name="setPosition" assertions="2" time="0.179"> <testcase classname="setPosition" name="setPosition" assertions="2" time="0.180">
</testcase> </testcase>
<testcase classname="setTitle" name="setTitle" assertions="1" time="0.018"> <testcase classname="setTitle" name="setTitle" assertions="1" time="0.019">
</testcase> </testcase>
<testcase classname="setVSync" name="setVSync" assertions="1" time="0.016"> <testcase classname="setVSync" name="setVSync" assertions="1" time="0.016">
</testcase> </testcase>
+2 -2
View File
@@ -115,12 +115,12 @@ Test classes that still need to be written:
- [ ] graphics.ParticleSystem - [ ] graphics.ParticleSystem
- [ ] physics.Body - [ ] physics.Body
- [ ] physics.Contact - [ ] physics.Contact
- [ ] physics.Joint
- [ ] physics.Shape - [ ] physics.Shape
--- ---
## Future Goals ## Future
- [ ] font class tests (Rasterizer + GlyphData) with BMfonts
- [ ] graphics.isCompressed should have an example of all compressed files love can take - [ ] graphics.isCompressed should have an example of all compressed files love can take
- [ ] Tests can compare visual results to a reference image - [ ] Tests can compare visual results to a reference image
This is partially done as we already save actual images for graphics tests to This is partially done as we already save actual images for graphics tests to
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

+10 -2
View File
@@ -19,8 +19,16 @@ love.test.font.GlyphData = function(test)
test:assertEquals(128, gdata:getSize(), 'check data size') test:assertEquals(128, gdata:getSize(), 'check data size')
test:assertEquals(9, gdata:getAdvance(), 'check advance') test:assertEquals(9, gdata:getAdvance(), 'check advance')
test:assertEquals('la8', gdata:getFormat(), 'check format') test:assertEquals('la8', gdata:getFormat(), 'check format')
test:assertEquals(97, gdata:getGlyph(), 'check glyph number') -- @TODO
test:assertEquals('a', gdata:getGlyphString(), 'check glyph string') --[[
currently these will return 0 and '' respectively as not implemented
https://github.com/love2d/love/blob/12.0-development/src/modules/font/freetype/TrueTypeRasterizer.cpp#L140-L141
"basically I haven't decided what to do here yet, because of the more
advanced text shaping that happens in love 12 having a unicode codepoint
associated with a glyph probably doesn't make sense in the first place"
]]--
--test:assertEquals(97, gdata:getGlyph(), 'check glyph number') - returns 0
--test:assertEquals('a', gdata:getGlyphString(), 'check glyph string') - returns ''
test:assertEquals(8, gdata:getHeight(), 'check height') test:assertEquals(8, gdata:getHeight(), 'check height')
test:assertEquals(8, gdata:getWidth(), 'check width') test:assertEquals(8, gdata:getWidth(), 'check width')
-- check boundary -- check boundary
+30 -4
View File
@@ -22,12 +22,38 @@ end
-- Joint (love.physics.newDistanceJoint) -- Joint (love.physics.newDistanceJoint)
love.test.physics.Joint = function(test) love.test.physics.Joint = function(test)
test:skipTest('test class needs writing') -- make joint
local world = love.physics.newWorld(1, 1, true)
local body1 = love.physics.newBody(world, 10, 10, 'dynamic')
local body2 = love.physics.newBody(world, 20, 20, 'dynamic')
local joint = love.physics.newDistanceJoint(body1, body2, 10, 10, 20, 20, true)
test:assertObject(joint)
-- check props
test:assertEquals('distance', joint:getType(), 'check joint type')
test:assertEquals(false, joint:isDestroyed(), 'check not destroyed')
test:assertEquals(0, joint:getReactionForce(1), 'check reaction force')
test:assertEquals(0, joint:getReactionTorque(1), 'check reaction torque')
local b1, b2 = joint:getBodies()
test:assertEquals(body1:getX(), b1:getX(), 'check body 1')
test:assertEquals(body2:getX(), b2:getX(), 'check body 2')
local x1, y1, x2, y2 = joint:getAnchors()
test:assertEquals(10, x1, 'check anchor x1')
test:assertEquals(10, y1, 'check anchor y1')
test:assertEquals(20, x2, 'check anchor x2')
test:assertEquals(20, y2, 'check anchor y2')
test:assertEquals(true, joint:getCollideConnected(), 'check not colliding')
-- test userdata
test:assertEquals(nil, joint:getUserData(), 'check no data by def')
joint:setUserData('hello')
test:assertEquals('hello', joint:getUserData(), 'check set userdata')
-- destroy
joint:destroy()
test:assertEquals(true, joint:isDestroyed(), 'check destroyed')
end end
-- Shape (love.physics.newCircleShape) -- Shape (love.physics.newCircleShape)
-- @NOTE includes Fixture methods too enjoy -- @NOTE includes Fixture methods too now so enjoy
love.test.physics.Shape = function(test) love.test.physics.Shape = function(test)
test:skipTest('test class needs writing') test:skipTest('test class needs writing')
end end
@@ -45,8 +71,8 @@ love.test.physics.World = function(test)
test:assertEquals(0, world:getBodies()[1]:getX(), 'check body prop x') test:assertEquals(0, world:getBodies()[1]:getX(), 'check body prop x')
test:assertEquals(0, world:getBodies()[1]:getY(), 'check body prop y') test:assertEquals(0, world:getBodies()[1]:getY(), 'check body prop y')
world:translateOrigin(-10, -10) world:translateOrigin(-10, -10)
test:assertEquals(10, world:getBodies()[1]:getX(), 'check body prop change x') test:assertEquals(10, math.floor(world:getBodies()[1]:getX()), 'check body prop change x')
test:assertEquals(10, world:getBodies()[1]:getY(), 'check body prop change y') test:assertEquals(10, math.floor(world:getBodies()[1]:getY()), 'check body prop change y')
test:assertEquals(1, world:getBodyCount(), 'check 1 body count') test:assertEquals(1, world:getBodyCount(), 'check 1 body count')
test:assertEquals(false, world:isDestroyed(), 'check not destroyed') test:assertEquals(false, world:isDestroyed(), 'check not destroyed')
test:assertEquals(false, world:isLocked(), 'check not updating') test:assertEquals(false, world:isLocked(), 'check not updating')