- Added tests for all obj creation, transformation, window + system info graphics methods
- Added half the state methods for graphics + added placeholders for missing drawing methods
- Added TestMethod:assertNotNil() for quick nil checking
- Added time total to the end of each module summary in console log to match file output

- Removed a bunch of unessecary nil checks
- Removed :release() from test methods, collectgarbage("collect") is called between methods instead

- Renamed /output to /examples to avoid confusion

- Replaced love.filesystem.newFile with love.filesystem.openFile
- Replaced love.math.noise with love.math.perlinNoise / love.math.simplexNoise

- Fixed newGearJoint throwing an error in 12 as body needs to be dynamic not static now

- Some general cleanup, incl. better comments and time format in file output
This commit is contained in:
ell
2023-10-05 23:03:32 +01:00
parent 08467cb4fa
commit e03b2db08b
30 changed files with 1982 additions and 866 deletions
+13 -90
View File
@@ -3,27 +3,21 @@
-- love.physics.getDistance
love.test.physics.getDistance = function(test)
-- setup
-- setup two fixtues to check
local shape1 = love.physics.newEdgeShape(0, 0, 5, 5)
local shape2 = love.physics.newEdgeShape(10, 10, 15, 15)
local world = love.physics.newWorld(0, 0, false)
local body = love.physics.newBody(world, 10, 10, 'static')
local fixture1 = love.physics.newFixture(body, shape1, 1)
local fixture2 = love.physics.newFixture(body, shape2, 1)
-- test
-- check distance between them
test:assertEquals(647106, math.floor(love.physics.getDistance(fixture1, fixture2)*100000), 'check distance matches')
-- cleanup
fixture1:release()
fixture2:release()
body:release()
world:release()
shape1:release()
shape2:release()
end
-- love.physics.getMeter
love.test.physics.getMeter = function(test)
-- check value set is returned
love.physics.setMeter(30)
test:assertEquals(30, love.physics.getMeter(), 'check meter matches')
end
@@ -32,50 +26,34 @@ end
-- love.physics.newBody
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
love.test.physics.newBody = function(test)
-- setup
local world = love.physics.newWorld(1, 1, true)
local body = love.physics.newBody(world, 10, 10, 'static')
-- test
test:assertObject(body)
-- cleanup
body:release()
world:release()
end
-- love.physics.newChainShape
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
love.test.physics.newChainShape = function(test)
local obj = love.physics.newChainShape(true, 0, 0, 1, 0, 1, 1, 0, 1)
test:assertObject(obj)
obj:release()
test:assertObject(love.physics.newChainShape(true, 0, 0, 1, 0, 1, 1, 0, 1))
end
-- love.physics.newCircleShape
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
love.test.physics.newCircleShape = function(test)
local obj = love.physics.newCircleShape(10)
test:assertObject(obj)
obj:release()
test:assertObject(love.physics.newCircleShape(10))
end
-- love.physics.newDistanceJoint
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
love.test.physics.newDistanceJoint = function(test)
-- setup
local world = love.physics.newWorld(1, 1, true)
local body1 = love.physics.newBody(world, 10, 10, 'static')
local body2 = love.physics.newBody(world, 20, 20, 'static')
-- test
local obj = love.physics.newDistanceJoint(body1, body2, 10, 10, 20, 20, true)
test:assertObject(obj)
-- cleanup
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -84,25 +62,17 @@ end
love.test.physics.newEdgeShape = function(test)
local obj = love.physics.newEdgeShape(0, 0, 10, 10)
test:assertObject(obj)
obj:release()
end
-- love.physics.newFixture
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
love.test.physics.newFixture = function(test)
-- setup
local world = love.physics.newWorld(1, 1, true)
local body = love.physics.newBody(world, 10, 10, 'static')
local shape = love.physics.newCircleShape(10)
-- test
local obj = love.physics.newFixture(body, shape, 1)
test:assertObject(obj)
-- cleanup
obj:release()
shape:release()
body:release()
world:release()
end
@@ -114,10 +84,6 @@ love.test.physics.newFrictionJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newFrictionJoint(body1, body2, 15, 15, true)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -125,22 +91,14 @@ end
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
love.test.physics.newGearJoint = function(test)
local world = love.physics.newWorld(1, 1, true)
local body1 = love.physics.newBody(world, 10, 10, 'static')
local body2 = love.physics.newBody(world, 20, 20, 'static')
local body3 = love.physics.newBody(world, 30, 30, 'static')
local body4 = love.physics.newBody(world, 40, 40, 'static')
local body1 = love.physics.newBody(world, 10, 10, 'dynamic')
local body2 = love.physics.newBody(world, 20, 20, 'dynamic')
local body3 = love.physics.newBody(world, 30, 30, 'dynamic')
local body4 = love.physics.newBody(world, 40, 40, 'dynamic')
local joint1 = love.physics.newPrismaticJoint(body1, body2, 10, 10, 20, 20, true)
local joint2 = love.physics.newPrismaticJoint(body3, body4, 30, 30, 40, 40, true)
local obj = love.physics.newGearJoint(joint1, joint2, 1, true)
test:assertObject(obj)
obj:release()
joint1:release()
joint2:release()
body1:release()
body2:release()
body3:release()
body4:release()
world:release()
end
@@ -152,10 +110,6 @@ love.test.physics.newMotorJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newMotorJoint(body1, body2, 1)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -166,9 +120,6 @@ love.test.physics.newMouseJoint = function(test)
local body = love.physics.newBody(world, 10, 10, 'static')
local obj = love.physics.newMouseJoint(body, 10, 10)
test:assertObject(obj)
obj:release()
body:release()
world:release()
end
@@ -177,7 +128,6 @@ end
love.test.physics.newPolygonShape = function(test)
local obj = love.physics.newPolygonShape({0, 0, 2, 3, 2, 1, 3, 1, 5, 1})
test:assertObject(obj)
obj:release()
end
@@ -189,10 +139,6 @@ love.test.physics.newPrismaticJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newPrismaticJoint(body1, body2, 10, 10, 20, 20, true)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -204,10 +150,6 @@ love.test.physics.newPulleyJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newPulleyJoint(body1, body2, 10, 10, 20, 20, 15, 15, 25, 25, 1, true)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -229,10 +171,6 @@ love.test.physics.newRevoluteJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newRevoluteJoint(body1, body2, 10, 10, true)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -244,10 +182,6 @@ love.test.physics.newRopeJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newRopeJoint(body1, body2, 10, 10, 20, 20, 50, true)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -259,10 +193,6 @@ love.test.physics.newWeldJoint = function(test)
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newWeldJoint(body1, body2, 10, 10, true)
test:assertObject(obj)
obj:release()
body1:release()
body2:release()
world:release()
end
@@ -273,13 +203,7 @@ love.test.physics.newWheelJoint = function(test)
local body1 = love.physics.newBody(world, 10, 10, 'static')
local body2 = love.physics.newBody(world, 20, 20, 'static')
local obj = love.physics.newWheelJoint(body1, body2, 10, 10, 5, 5, true)
test:assertNotEquals(nil, obj)
test:assertEquals('userdata', type(obj))
test:assertNotEquals(nil, obj:type())
obj:release()
body1:release()
body2:release()
world:release()
test:assertObject(obj)
end
@@ -288,19 +212,18 @@ end
love.test.physics.newWorld = function(test)
local world = love.physics.newWorld(1, 1, true)
test:assertObject(world)
world:release()
end
-- love.physics.setMeter
love.test.physics.setMeter = function(test)
-- set initial meter
local world = love.physics.newWorld(1, 1, true)
love.physics.setMeter(30)
local body = love.physics.newBody(world, 300, 300, "dynamic")
-- check changing meter changes pos value relatively
love.physics.setMeter(10)
local x, y = body:getPosition()
test:assertEquals(100, x, 'check pos x')
test:assertEquals(100, y, 'check pos y')
body:release()
world:release()
end
end