56 lines
2.1 KiB
Dart
56 lines
2.1 KiB
Dart
import 'dart:io';
|
|
import 'dart:ui';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:yumi/ui_kit/widgets/room/cp/room_cp_relation_formed_effect.dart';
|
|
|
|
void main() {
|
|
test('reads avatar slots from the CP formed MP4 vap metadata', () {
|
|
final bytes =
|
|
File(
|
|
'sc_images/room/cp_invite/sc_cp_relation_formed_effect.mp4',
|
|
).readAsBytesSync();
|
|
final layout = parseRoomCpRelationFormedVapLayout(bytes);
|
|
|
|
expect(layout, isNotNull);
|
|
expect(layout!.canvasSize.width, 720);
|
|
expect(layout.canvasSize.height, 1280);
|
|
expect(layout.fps, 25);
|
|
expect(layout.totalFrames, 125);
|
|
expect(layout.firstDynamicFrame, 44);
|
|
expect(layout.lastDynamicFrame, 95);
|
|
|
|
final left = layout.leftPlacementForFrame(52);
|
|
final right = layout.rightPlacementForFrame(52);
|
|
expect(left?.frame.left, 230);
|
|
expect(left?.frame.top, 842);
|
|
expect(left?.frame.width, 121);
|
|
expect(left?.frame.height, 121);
|
|
expect(right?.frame.left, 365);
|
|
expect(right?.frame.top, 843);
|
|
expect(right?.frame.width, 121);
|
|
expect(right?.frame.height, 120);
|
|
});
|
|
|
|
test('scales avatar slots using the visible 720x1280 video canvas', () {
|
|
final bytes =
|
|
File(
|
|
'sc_images/room/cp_invite/sc_cp_relation_formed_effect.mp4',
|
|
).readAsBytesSync();
|
|
final layout = parseRoomCpRelationFormedVapLayout(bytes)!;
|
|
final left = layout.leftPlacementForFrame(52)!;
|
|
|
|
final contentRect = layout.contentRectForBounds(const Size(402, 874));
|
|
final scaled = layout.scaledRectForPlacement(left, const Size(402, 874));
|
|
|
|
expect(contentRect.left, moreOrLessEquals(0, epsilon: 0.01));
|
|
expect(contentRect.top, moreOrLessEquals(79.67, epsilon: 0.01));
|
|
expect(contentRect.width, moreOrLessEquals(402, epsilon: 0.01));
|
|
expect(contentRect.height, moreOrLessEquals(714.67, epsilon: 0.01));
|
|
expect(scaled.left, moreOrLessEquals(128.42, epsilon: 0.01));
|
|
expect(scaled.top, moreOrLessEquals(549.78, epsilon: 0.01));
|
|
expect(scaled.width, moreOrLessEquals(67.56, epsilon: 0.01));
|
|
expect(scaled.height, moreOrLessEquals(67.56, epsilon: 0.01));
|
|
});
|
|
}
|