Browse Source

added test.physics.Joint

ell 1 year ago
parent
commit
adc6fbea4c

File diff suppressed because it is too large
+ 0 - 0
testing/examples/lovetest_runAllTests.html


+ 17 - 20
testing/examples/lovetest_runAllTests.md

@@ -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 |
-| 🟢 data | 12 | 0 | 0 | 0.205s |
-| 🟢 event | 4 | 0 | 2 | 0.102s |
-| 🟢 filesystem | 29 | 0 | 2 | 0.530s |
-| 🔴 font | 6 | 1 | 0 | 0.121s |
-| 🟢 graphics | 102 | 0 | 3 | 3.232s |
-| 🟢 image | 5 | 0 | 0 | 0.086s |
-| 🟢 math | 20 | 0 | 0 | 0.339s |
-| 🟢 physics | 22 | 0 | 4 | 0.434s |
-| 🟢 sound | 4 | 0 | 0 | 0.071s |
-| 🟢 system | 6 | 0 | 2 | 0.139s |
-| 🟢 thread | 5 | 0 | 0 | 0.376s |
-| 🟢 timer | 6 | 0 | 0 | 2.091s |
-| 🟢 video | 2 | 0 | 0 | 0.039s |
-| 🟢 window | 34 | 0 | 2 | 6.015s |
+| 🟢 audio | 28 | 0 | 0 | 0.894s |
+| 🟢 data | 12 | 0 | 0 | 0.209s |
+| 🟢 event | 4 | 0 | 2 | 0.103s |
+| 🟢 filesystem | 29 | 0 | 2 | 0.550s |
+| 🟢 font | 7 | 0 | 0 | 0.124s |
+| 🟢 graphics | 102 | 0 | 3 | 3.231s |
+| 🟢 image | 5 | 0 | 0 | 0.098s |
+| 🟢 math | 20 | 0 | 0 | 0.353s |
+| 🟢 physics | 23 | 0 | 3 | 0.449s |
+| 🟢 sound | 4 | 0 | 0 | 0.074s |
+| 🟢 system | 6 | 0 | 2 | 0.144s |
+| 🟢 thread | 5 | 0 | 0 | 0.377s |
+| 🟢 timer | 6 | 0 | 0 | 2.093s |
+| 🟢 video | 2 | 0 | 0 | 0.040s |
+| 🟢 window | 34 | 0 | 2 | 5.986s |
 
 
 ### Failures
 ### Failures
-> 🔴 GlyphData  
-> assert 8 [check glyph number] expected '97' got '0'  
-

+ 241 - 243
testing/examples/lovetest_runAllTests.xml

@@ -1,30 +1,30 @@
-<testsuites name="love.test" tests="285" failures="1" skipped="15" time="14.670">
-	<testsuite name="love.audio" tests="28" failures="0" skipped="0" time="0.890">
-		<testcase classname="RecordingDevice" name="RecordingDevice" assertions="20" time="0.401">
+<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.894">
+		<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">
-		<testcase classname="ByteData" name="ByteData" assertions="10" time="0.019">
+	<testsuite name="love.data" tests="12" failures="0" skipped="0" time="0.209">
+		<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">
-		<testcase classname="clear" name="clear" assertions="1" time="0.017">
+	<testsuite name="love.event" tests="4" failures="0" skipped="2" time="0.103">
+		<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">
-		<testcase classname="File" name="File" assertions="36" time="0.020">
+	<testsuite name="love.filesystem" tests="29" failures="0" skipped="2" time="0.550">
+		<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">
-		<testcase classname="GlyphData" name="GlyphData" assertions="19" time="0.018">
-			<failure message="assert 8 [check glyph number] expected '97' got '0'">assert 8 [check glyph number] expected '97' got '0'</failure>
+	<testsuite name="love.font" tests="7" failures="0" skipped="0" time="0.124">
+		<testcase classname="GlyphData" name="GlyphData" assertions="17" time="0.016">
 		</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">
-		<testcase classname="Canvas" name="Canvas" assertions="44" time="0.020">
+	<testsuite name="love.graphics" tests="102" failures="0" skipped="3" time="3.231">
+		<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">
-		<testcase classname="BezierCurve" name="BezierCurve" assertions="31" time="0.017">
+	<testsuite name="love.math" tests="20" failures="0" skipped="0" time="0.353">
+		<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">
-		<testcase classname="Body" name="Body" assertions="0" time="0.017">
+	<testsuite name="love.physics" tests="23" failures="0" skipped="3" time="0.449">
+		<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">
-			<skipped message="test class needs writing" />
+		<testcase classname="Joint" name="Joint" assertions="17" time="0.018">
 		</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">
-		<testcase classname="Decoder" name="Decoder" assertions="14" time="0.018">
+	<testsuite name="love.sound" tests="4" failures="0" skipped="0" time="0.074">
+		<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">
-		<testcase classname="getClipboardText" name="getClipboardText" assertions="1" time="0.017">
+	<testsuite name="love.system" tests="6" failures="0" skipped="2" time="0.144">
+		<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">
-		<testcase classname="Channel" name="Channel" assertions="10" time="0.235">
+	<testsuite name="love.thread" tests="5" failures="0" skipped="0" time="0.377">
+		<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">
-		<testcase classname="getAverageDelta" name="getAverageDelta" assertions="1" time="0.017">
+	<testsuite name="love.timer" tests="6" failures="0" skipped="0" time="2.093">
+		<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">
-		<testcase classname="close" name="close" assertions="2" time="0.048">
+	<testsuite name="love.window" tests="34" failures="0" skipped="2" time="5.986">
+		<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
testing/readme.md

@@ -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

BIN
testing/resources/font.bmp


+ 10 - 2
testing/tests/font.lua

@@ -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')
-  test:assertEquals('a', gdata:getGlyphString(), 'check glyph string')
+  -- @TODO 
+  --[[
+    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
testing/tests/physics.lua

@@ -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, world:getBodies()[1]:getY(), 'check body prop change y')
+  test:assertEquals(10, math.floor(world:getBodies()[1]:getX()), 'check body prop change x')
+  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')

Some files were not shown because too many files changed in this diff