1
0

test: add test for tas oper and fix issue

This commit is contained in:
2026-03-31 14:26:17 +08:00
parent d0174bbf86
commit b8184c6ab4
6 changed files with 427 additions and 51 deletions

View File

@@ -28,12 +28,9 @@ namespace BallanceTasEditorTests.Backend {
return new ExactSizeEnumerableAdapter<TasFrame>(BLANK, BLANK.Length);
}
private static IEnumerable<object[]> TasSequenceInstanceProvider {
private static IEnumerable<object[]> CommonTestDataProvider {
get {
yield return new object[] { new ListTasSequence() };
yield return new object[] { new LegacyTasSequence() };
// TODO: Add GapBufferTasSequence once we finish it.
//yield return new object[] { new GapBufferTasSequence() };
return TasSequenceUtils.EnumerateTasSequenceImplementation().Select((seq) => new object[] { seq });
}
}
@@ -41,7 +38,7 @@ namespace BallanceTasEditorTests.Backend {
/// Visit函数独立测试。
/// </summary>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void VisitTest(ITasSequence sequence) {
// 空时访问
AssertExtension.ThrowsDerivedException<IndexOutOfRangeException>(() => sequence.Visit(-1));
@@ -62,7 +59,7 @@ namespace BallanceTasEditorTests.Backend {
/// Insert函数独立测试。
/// </summary>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void InsertTest(ITasSequence sequence) {
// 需要在不同的存储器上,分别检测在空的时候插入,
// 和在非空时的头,中,尾分别插入的结果。
@@ -101,7 +98,7 @@ namespace BallanceTasEditorTests.Backend {
/// Remove函数独立测试。
/// </summary>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void RemoveTest(ITasSequence sequence) {
// 插入项目后尝试在头中尾分别删除
var indices = new int[] { 0, PROBE.Length / 2, PROBE.Length - 1 };
@@ -128,7 +125,7 @@ namespace BallanceTasEditorTests.Backend {
/// Clear函数独立测试。
/// </summary>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void ClearTest(ITasSequence sequence) {
// 设置数据后清空
sequence.Insert(0, GetExactSizeProbe());
@@ -142,7 +139,7 @@ namespace BallanceTasEditorTests.Backend {
/// IsEmpty函数独立测试。
/// </summary>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void IsEmptyTest(ITasSequence sequence) {
// 检查是否为空
Assert.IsTrue(sequence.IsEmpty());
@@ -156,7 +153,7 @@ namespace BallanceTasEditorTests.Backend {
/// GetCount函数独立测试。
/// </summary>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void GetCountTest(ITasSequence sequence) {
// 检查长度为0
Assert.AreEqual(sequence.GetCount(), 0);
@@ -171,7 +168,7 @@ namespace BallanceTasEditorTests.Backend {
/// </summary>
/// <param name="sequence"></param>
[DataTestMethod]
[DynamicData(nameof(TasSequenceInstanceProvider))]
[DynamicData(nameof(CommonTestDataProvider))]
public void HybridTest(ITasSequence sequence) {
// 检查空和大小
Assert.IsTrue(sequence.IsEmpty());