From 123543a98595bccae0e52a8cbff88f3a9216cb96 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Fri, 28 Mar 2025 10:03:14 +0800 Subject: [PATCH] test fixes --- thermion_dart/test/animation_tests.dart | 46 +++++++++++++++++-------- thermion_dart/test/dummy_tests.dart | 16 --------- thermion_dart/test/render_thread.dart | 33 ------------------ thermion_dart/test/skybox_tests.dart | 19 ---------- 4 files changed, 32 insertions(+), 82 deletions(-) delete mode 100644 thermion_dart/test/dummy_tests.dart delete mode 100644 thermion_dart/test/render_thread.dart delete mode 100644 thermion_dart/test/skybox_tests.dart diff --git a/thermion_dart/test/animation_tests.dart b/thermion_dart/test/animation_tests.dart index cd1872a8..17bcaff6 100644 --- a/thermion_dart/test/animation_tests.dart +++ b/thermion_dart/test/animation_tests.dart @@ -2,28 +2,46 @@ import 'dart:async'; import 'dart:typed_data'; import 'package:animation_tools_dart/animation_tools_dart.dart'; import 'package:test/test.dart'; +import 'package:thermion_dart/src/viewer/src/ffi/src/callbacks.dart'; +import 'package:thermion_dart/src/viewer/src/ffi/src/ffi_asset.dart'; +import 'package:thermion_dart/src/viewer/src/ffi/src/thermion_viewer_ffi.dart'; +import 'package:thermion_dart/thermion_dart.dart'; import 'helpers.dart'; void main() async { final testHelper = TestHelper("animation"); - + await testHelper.setup(); group('morph animation tests', () { - test('set morph animation', () async { + test('retrieve morph target names', () async { await testHelper.withViewer((viewer) async { - final cube = await viewer.loadGlb( + final cube = await viewer.loadGltf( "${testHelper.testDir}/assets/cube_with_morph_targets.glb"); - var morphData = MorphAnimationData( - Float32List.fromList(List.generate(60, (i) => i / 60)), - ["Key 1"]); - - await viewer.setMorphAnimationData(cube, morphData); - for (int i = 0; i < 60; i++) { - await viewer.requestFrame(); - await Future.delayed(Duration(milliseconds: 17)); - } - - await testHelper.capture(viewer, "morph_animation"); + final childEntities = await cube.getChildEntities(); + var morphTargets = + await cube.getMorphTargetNames(entity: childEntities.first); + expect(morphTargets.length, 1); + expect(morphTargets.first, "Key 1"); }); }); + + test('set morph target weights', () async { + await testHelper.withViewer((viewer) async { + final cube = await viewer.loadGltf( + "${testHelper.testDir}/assets/cube_with_morph_targets.glb"); + print(await cube.getChildEntityNames()); + await viewer.addToScene(cube); + await testHelper.capture(viewer.view, "cube_no_morph"); + + final childEntities = await cube.getChildEntities(); + + var morphData = MorphAnimationData( + Float32List.fromList([1.0]), ["Key 1"], + frameLengthInMs: 1000.0 / 60.0); + await cube.addAnimationComponent(childEntities.first); + await cube.setMorphAnimationData(morphData); + await viewer.render(); + await testHelper.capture(viewer.view, "cube_with_morph"); + }, bg: kRed); + }); }); } diff --git a/thermion_dart/test/dummy_tests.dart b/thermion_dart/test/dummy_tests.dart deleted file mode 100644 index 4fb62142..00000000 --- a/thermion_dart/test/dummy_tests.dart +++ /dev/null @@ -1,16 +0,0 @@ -// just for investigating crashes on GitHub actions -import 'package:test/test.dart'; - -import 'helpers.dart'; - -void main() async { - group("test", () { - test("test", () async { - print("Creating test helper"); - final testHelper = TestHelper("dummy"); - var viewer = await testHelper.createViewer(); - - expect(1, 1); - }); - }); -} diff --git a/thermion_dart/test/render_thread.dart b/thermion_dart/test/render_thread.dart deleted file mode 100644 index ea8579be..00000000 --- a/thermion_dart/test/render_thread.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'dart:async'; -import 'dart:ffi'; -import 'package:test/test.dart'; - -import 'helpers.dart'; - -void main() async { - final testHelper = TestHelper("render_thread"); - group("render thread/capture", () { - test("request frame on render thread", () async { - var viewer = await testHelper.createViewer(); - await viewer.setBackgroundColor(1.0, 0.0, 0.0, 1.0); - - var texture = await testHelper.createTexture(500, 500); - var renderTarget = await viewer.createRenderTarget( - 500, 500, texture.metalTextureAddress); - - final view = await viewer.getViewAt(0); - await view.setRenderTarget(renderTarget); - - await viewer.render(); - - await Future.delayed(Duration(milliseconds: 1)); - - var data = texture.getTextureBytes()!; - var pixels = data.bytes.cast().asTypedList(data.length); - - savePixelBufferToBmp( - pixels, 500, 500, "${testHelper.testDir}/request_frame.bmp"); - await viewer.dispose(); - }); - }); -} diff --git a/thermion_dart/test/skybox_tests.dart b/thermion_dart/test/skybox_tests.dart deleted file mode 100644 index aec904f6..00000000 --- a/thermion_dart/test/skybox_tests.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:test/test.dart'; - -import 'helpers.dart'; - -void main() async { - final testHelper = TestHelper("integration"); - - group("skybox", () { - test('load skybox', () async { - var viewer = await testHelper.createViewer(); - await viewer.loadSkybox( - "file://${testHelper.testDir}/assets/default_env_skybox.ktx"); - await testHelper.capture(viewer, "load_skybox"); - await viewer.removeSkybox(); - await testHelper.capture(viewer, "remove_skybox"); - await viewer.dispose(); - }); - }); -}