mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 16:20:11 -04:00
tests: add unit tests for Audio3DManager sound velocity
This commit is contained in:
parent
2da791b9fb
commit
0c5546bcb0
55
tests/showbase/test_Audio3DManager.py
Normal file
55
tests/showbase/test_Audio3DManager.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
from direct.showbase.Audio3DManager import Audio3DManager
|
||||||
|
from panda3d import core
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def manager3d():
|
||||||
|
root = core.NodePath("root")
|
||||||
|
manager = core.AudioManager.create_AudioManager()
|
||||||
|
manager3d = Audio3DManager(manager, root=root)
|
||||||
|
yield manager3d
|
||||||
|
del manager3d
|
||||||
|
manager.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
def test_audio3dmanager_velocity(manager3d):
|
||||||
|
sound = manager3d.load_sfx("nonexistent")
|
||||||
|
|
||||||
|
# Generate an object with movement
|
||||||
|
object = core.NodePath("object")
|
||||||
|
object.set_pos(0, 0, 0)
|
||||||
|
object.set_fluid_pos(1, 2, 3)
|
||||||
|
assert object.get_pos_delta() == (1, 2, 3)
|
||||||
|
|
||||||
|
res = manager3d.attach_sound_to_object(sound, object)
|
||||||
|
assert res
|
||||||
|
|
||||||
|
clock = core.ClockObject.get_global_clock()
|
||||||
|
clock.mode = core.ClockObject.M_slave
|
||||||
|
clock.dt = 0.5
|
||||||
|
|
||||||
|
# Test auto velocity calculation
|
||||||
|
manager3d.set_sound_velocity_auto(sound)
|
||||||
|
assert manager3d.get_sound_velocity(sound) == (2, 4, 6)
|
||||||
|
|
||||||
|
# Test setting to fixed value
|
||||||
|
manager3d.set_sound_velocity(sound, (5, 5, 5))
|
||||||
|
assert manager3d.get_sound_velocity(sound) == (5, 5, 5)
|
||||||
|
|
||||||
|
|
||||||
|
def test_audio3dmanager_weak(manager3d):
|
||||||
|
sound = manager3d.load_sfx("nonexistent")
|
||||||
|
object = core.NodePath("object")
|
||||||
|
|
||||||
|
res = manager3d.attach_sound_to_object(sound, object)
|
||||||
|
assert res
|
||||||
|
assert object in manager3d.sound_dict
|
||||||
|
|
||||||
|
manager3d.update()
|
||||||
|
assert object in manager3d.sound_dict
|
||||||
|
|
||||||
|
object.remove_node()
|
||||||
|
manager3d.update()
|
||||||
|
|
||||||
|
assert object not in manager3d.sound_dict
|
Loading…
x
Reference in New Issue
Block a user