mirror of
https://github.com/love2d/love.git
synced 2026-08-12 16:40:57 +02:00
e03b2db08b
- 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
282 lines
9.1 KiB
Lua
282 lines
9.1 KiB
Lua
-- love.audio
|
|
|
|
|
|
-- love.audio.getActiveEffects
|
|
love.test.audio.getActiveEffects = function(test)
|
|
-- check we get a value
|
|
test:assertNotNil(love.audio.getActiveEffects())
|
|
-- check setting an effect active
|
|
love.audio.setEffect('testeffect', {
|
|
type = 'chorus',
|
|
volume = 10
|
|
})
|
|
test:assertEquals(1, #love.audio.getActiveEffects(), 'check 1 effect running')
|
|
test:assertEquals('testeffect', love.audio.getActiveEffects()[1], 'check effect details')
|
|
end
|
|
|
|
|
|
-- love.audio.getActiveSourceCount
|
|
love.test.audio.getActiveSourceCount = function(test)
|
|
-- check we get a value
|
|
test:assertNotNil(love.audio.getActiveSourceCount())
|
|
-- check source isn't active by default
|
|
local testsource = love.audio.newSource('resources/click.ogg', 'static')
|
|
test:assertEquals(0, love.audio.getActiveSourceCount(), 'check not active')
|
|
-- check playing a source marks it as active
|
|
love.audio.play(testsource)
|
|
test:assertEquals(1, love.audio.getActiveSourceCount(), 'check now active')
|
|
love.audio.pause()
|
|
end
|
|
|
|
|
|
-- love.audio.getDistanceModel
|
|
love.test.audio.getDistanceModel = function(test)
|
|
-- check we get a value
|
|
test:assertNotNil(love.audio.getDistanceModel())
|
|
-- check default value from documentation
|
|
test:assertEquals('inverseclamped', love.audio.getDistanceModel(), 'check default value')
|
|
-- check get correct value after setting
|
|
love.audio.setDistanceModel('inverse')
|
|
test:assertEquals('inverse', love.audio.getDistanceModel(), 'check setting model')
|
|
end
|
|
|
|
|
|
-- love.audio.getDopplerScale
|
|
love.test.audio.getDopplerScale = function(test)
|
|
-- check default value
|
|
test:assertEquals(1, love.audio.getDopplerScale(), 'check default 1')
|
|
-- check correct value after setting to 0
|
|
love.audio.setDopplerScale(0)
|
|
test:assertEquals(0, love.audio.getDopplerScale(), 'check setting to 0')
|
|
love.audio.setDopplerScale(1)
|
|
end
|
|
|
|
|
|
-- love.audio.getEffect
|
|
love.test.audio.getEffect = function(test)
|
|
-- check getting a non-existent effect
|
|
test:assertEquals(nil, love.audio.getEffect('madeupname'), 'check wrong name')
|
|
-- check getting a valid effect
|
|
love.audio.setEffect('testeffect', {
|
|
type = 'chorus',
|
|
volume = 10
|
|
})
|
|
test:assertNotNil(love.audio.getEffect('testeffect'))
|
|
-- check effect values match creation values
|
|
test:assertEquals('chorus', love.audio.getEffect('testeffect').type, 'check effect type')
|
|
test:assertEquals(10, love.audio.getEffect('testeffect').volume, 'check effect volume')
|
|
end
|
|
|
|
|
|
-- love.audio.getMaxSceneEffects
|
|
-- @NOTE feel like this is platform specific number so best we can do is a nil?
|
|
love.test.audio.getMaxSceneEffects = function(test)
|
|
test:assertNotNil(love.audio.getMaxSceneEffects())
|
|
end
|
|
|
|
|
|
-- love.audio.getMaxSourceEffects
|
|
-- @NOTE feel like this is platform specific number so best we can do is a nil?
|
|
love.test.audio.getMaxSourceEffects = function(test)
|
|
test:assertNotNil(love.audio.getMaxSourceEffects())
|
|
end
|
|
|
|
|
|
-- love.audio.getOrientation
|
|
-- @NOTE is there an expected default listener pos?
|
|
love.test.audio.getOrientation = function(test)
|
|
-- checking getting values matches what was set
|
|
love.audio.setOrientation(1, 2, 3, 4, 5, 6)
|
|
local fx, fy, fz, ux, uy, uz = love.audio.getOrientation()
|
|
test:assertEquals(1, fx, 'check fx orientation')
|
|
test:assertEquals(2, fy, 'check fy orientation')
|
|
test:assertEquals(3, fz, 'check fz orientation')
|
|
test:assertEquals(4, ux, 'check ux orientation')
|
|
test:assertEquals(5, uy, 'check uy orientation')
|
|
test:assertEquals(6, uz, 'check uz orientation')
|
|
end
|
|
|
|
|
|
-- love.audio.getPosition
|
|
-- @NOTE is there an expected default listener pos?
|
|
love.test.audio.getPosition = function(test)
|
|
-- check getting values matches what was set
|
|
love.audio.setPosition(1, 2, 3)
|
|
local x, y, z = love.audio.getPosition()
|
|
test:assertEquals(1, x, 'check x position')
|
|
test:assertEquals(2, y, 'check y position')
|
|
test:assertEquals(3, z, 'check z position')
|
|
end
|
|
|
|
|
|
-- love.audio.getRecordingDevices
|
|
-- @NOTE hardware dependent so best can do is not nil check
|
|
love.test.audio.getRecordingDevices = function(test)
|
|
test:assertNotNil(love.audio.getRecordingDevices())
|
|
end
|
|
|
|
|
|
-- love.audio.getVelocity
|
|
love.test.audio.getVelocity = function(test)
|
|
-- check getting values matches what was set
|
|
love.audio.setVelocity(1, 2, 3)
|
|
local x, y, z = love.audio.getVelocity()
|
|
test:assertEquals(1, x, 'check x velocity')
|
|
test:assertEquals(2, y, 'check y velocity')
|
|
test:assertEquals(3, z, 'check z velocity')
|
|
end
|
|
|
|
|
|
-- love.audio.getVolume
|
|
love.test.audio.getVolume = function(test)
|
|
-- check getting values matches what was set
|
|
love.audio.setVolume(0.5)
|
|
test:assertEquals(0.5, love.audio.getVolume(), 'check matches set')
|
|
end
|
|
|
|
|
|
-- love.audio.isEffectsSupported
|
|
love.test.audio.isEffectsSupported = function(test)
|
|
test:assertNotNil(love.audio.isEffectsSupported())
|
|
end
|
|
|
|
|
|
-- love.audio.newQueueableSource
|
|
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
|
|
love.test.audio.newQueueableSource = function(test)
|
|
test:assertObject(love.audio.newQueueableSource(32, 8, 1, 8))
|
|
end
|
|
|
|
|
|
-- love.audio.newSource
|
|
-- @NOTE this is just basic nil checking, full obj test are in objects.lua
|
|
love.test.audio.newSource = function(test)
|
|
test:assertObject(love.audio.newSource('resources/click.ogg', 'static'))
|
|
test:assertObject(love.audio.newSource('resources/click.ogg', 'stream'))
|
|
end
|
|
|
|
|
|
-- love.audio.pause
|
|
love.test.audio.pause = function(test)
|
|
-- check nothing paused (as should be nothing playing)
|
|
local nopauses = love.audio.pause()
|
|
test:assertEquals(0, #nopauses, 'check nothing paused')
|
|
-- check 1 source paused after playing/pausing 1
|
|
local source = love.audio.newSource('resources/click.ogg', 'static')
|
|
love.audio.play(source)
|
|
local onepause = love.audio.pause()
|
|
test:assertEquals(1, #onepause, 'check 1 paused')
|
|
end
|
|
|
|
|
|
-- love.audio.play
|
|
love.test.audio.play = function(test)
|
|
-- check playing source is detected
|
|
local source = love.audio.newSource('resources/click.ogg', 'static')
|
|
love.audio.play(source)
|
|
test:assertEquals(true, source:isPlaying(), 'check something playing')
|
|
love.audio.pause()
|
|
end
|
|
|
|
|
|
-- love.audio.setDistanceModel
|
|
love.test.audio.setDistanceModel = function(test)
|
|
-- check setting each of the distance models is accepted and val returned
|
|
local distancemodel = {
|
|
'none', 'inverse', 'inverseclamped', 'linear', 'linearclamped',
|
|
'exponent', 'exponentclamped'
|
|
}
|
|
for d=1,#distancemodel do
|
|
love.audio.setDistanceModel(distancemodel[d])
|
|
test:assertEquals(distancemodel[d], love.audio.getDistanceModel(),
|
|
'check model set to ' .. distancemodel[d])
|
|
end
|
|
end
|
|
|
|
|
|
-- love.audio.setDopplerScale
|
|
love.test.audio.setDopplerScale = function(test)
|
|
-- check setting value is returned properly
|
|
love.audio.setDopplerScale(0)
|
|
test:assertEquals(0, love.audio.getDopplerScale(), 'check set to 0')
|
|
love.audio.setDopplerScale(1)
|
|
test:assertEquals(1, love.audio.getDopplerScale(), 'check set to 1')
|
|
end
|
|
|
|
|
|
-- love.audio.setEffect
|
|
love.test.audio.setEffect = function(test)
|
|
-- check effect is set correctly
|
|
local effect = love.audio.setEffect('testeffect', {
|
|
type = 'chorus',
|
|
volume = 10
|
|
})
|
|
test:assertEquals(true, effect, 'check effect created')
|
|
-- check values set match
|
|
local settings = love.audio.getEffect('testeffect')
|
|
test:assertEquals('chorus', settings.type, 'check effect type')
|
|
test:assertEquals(10, settings.volume, 'check effect volume')
|
|
end
|
|
|
|
|
|
-- love.audio.setMixWithSystem
|
|
love.test.audio.setMixWithSystem = function(test)
|
|
test:assertNotNil(love.audio.setMixWithSystem(true))
|
|
end
|
|
|
|
|
|
-- love.audio.setOrientation
|
|
love.test.audio.setOrientation = function(test)
|
|
-- check setting orientation vals are returned
|
|
love.audio.setOrientation(1, 2, 3, 4, 5, 6)
|
|
local fx, fy, fz, ux, uy, uz = love.audio.getOrientation()
|
|
test:assertEquals(1, fx, 'check fx orientation')
|
|
test:assertEquals(2, fy, 'check fy orientation')
|
|
test:assertEquals(3, fz, 'check fz orientation')
|
|
test:assertEquals(4, ux, 'check ux orientation')
|
|
test:assertEquals(5, uy, 'check uy orientation')
|
|
test:assertEquals(6, uz, 'check uz orientation')
|
|
end
|
|
|
|
|
|
-- love.audio.setPosition
|
|
love.test.audio.setPosition = function(test)
|
|
-- check setting position vals are returned
|
|
love.audio.setPosition(1, 2, 3)
|
|
local x, y, z = love.audio.getPosition()
|
|
test:assertEquals(1, x, 'check x position')
|
|
test:assertEquals(2, y, 'check y position')
|
|
test:assertEquals(3, z, 'check z position')
|
|
end
|
|
|
|
|
|
-- love.audio.setVelocity
|
|
love.test.audio.setVelocity = function(test)
|
|
-- check setting velocity vals are returned
|
|
love.audio.setVelocity(1, 2, 3)
|
|
local x, y, z = love.audio.getVelocity()
|
|
test:assertEquals(1, x, 'check x velocity')
|
|
test:assertEquals(2, y, 'check y velocity')
|
|
test:assertEquals(3, z, 'check z velocity')
|
|
end
|
|
|
|
|
|
-- love.audio.setVolume
|
|
love.test.audio.setVolume = function(test)
|
|
-- check setting volume works
|
|
love.audio.setVolume(0.5)
|
|
test:assertEquals(0.5, love.audio.getVolume(), 'check set to 0.5')
|
|
end
|
|
|
|
|
|
-- love.audio.stop
|
|
love.test.audio.stop = function(test)
|
|
-- check source is playing first
|
|
local source = love.audio.newSource('resources/click.ogg', 'static')
|
|
love.audio.play(source)
|
|
test:assertEquals(true, source:isPlaying(), 'check is playing')
|
|
-- check source is then stopped
|
|
love.audio.stop()
|
|
test:assertEquals(false, source:isPlaying(), 'check stopped playing')
|
|
end
|