Skip to content

Commit 2d0b096

Browse files
committed
2 parents a84e732 + 2d0b56b commit 2d0b096

26 files changed

+380
-46
lines changed

BinarySerializer

ME3Tweaks.Wwiser.Tests/ChunkTests/BankHeaderTests.cs

+14-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace ME3Tweaks.Wwiser.Tests.ChunkTests;
33
public class BankHeaderTests
44
{
55
[Test]
6-
public void V134_Parses()
6+
public void BKHD_V134_Parses()
77
{
88
var data = TestData.GetTestDataBytes(@"BankHeader",@"v134.bin");
99
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 134);
@@ -25,7 +25,7 @@ public void V134_Parses()
2525
}
2626

2727
[Test]
28-
public void V56_Parses()
28+
public void BKHD_V56_Parses()
2929
{
3030
var data = TestData.GetTestDataBytes(@"BankHeader",@"v56.bin");
3131
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 56);
@@ -48,12 +48,22 @@ public void V56_Parses()
4848
}
4949

5050
[Test]
51-
public void V134_Reserializes()
51+
public void BKHD_V134_Reserializes()
5252
{
5353
var data = TestData.GetTestDataBytes(@"BankHeader",@"v134.bin");
5454
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 134);
5555

5656
var reserialized = TestHelpers.Serialize(result, 134);
57-
Assert.That(reserialized, Is.EqualTo(data));
57+
Assert.That(reserialized, Is.EquivalentTo(data));
58+
}
59+
60+
[Test]
61+
public void BKHD_V56_Reserializes()
62+
{
63+
var data = TestData.GetTestDataBytes(@"BankHeader",@"v56.bin");
64+
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 56);
65+
66+
var reserialized = TestHelpers.Serialize(result, 56);
67+
Assert.That(reserialized, Is.EquivalentTo(data));
5868
}
5969
}

ME3Tweaks.Wwiser.Tests/ChunkTests/MediaIndexTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
public class MediaIndexTests
44
{
55
[Test]
6-
public void V134_Parses()
6+
public void DIDX_V134_Parses()
77
{
88
var data = TestData.GetTestDataBytes(@"MediaIndex",@"DIDXv134.bin");
99
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 134);
@@ -29,12 +29,12 @@ public void V134_Parses()
2929
}
3030

3131
[Test]
32-
public void V134_Reserializes()
32+
public void DIDX_V134_Reserializes()
3333
{
3434
var data = TestData.GetTestDataBytes(@"MediaIndex",@"DIDXv134.bin");
3535
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 134);
3636

3737
var reserialized = TestHelpers.Serialize(result, 134);
38-
Assert.That(reserialized, Is.EqualTo(data));
38+
Assert.That(reserialized, Is.EquivalentTo(data));
3939
}
4040
}

ME3Tweaks.Wwiser.Tests/ChunkTests/StringMappingTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
public class StringMappingTests
44
{
55
[Test]
6-
public void V56_Parses()
6+
public void STID_V56_Parses()
77
{
88
var data = TestData.GetTestDataBytes(@"StringMapping",@"STIDv56.bin");
99
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 56);
@@ -29,12 +29,12 @@ public void V56_Parses()
2929
}
3030

3131
[Test]
32-
public void V56_Reserializes()
32+
public void STID_V56_Reserializes()
3333
{
3434
var data = TestData.GetTestDataBytes(@"StringMapping",@"STIDv56.bin");
3535
var (_, result) = TestHelpers.Deserialize<ChunkContainer>(data, 56);
3636

3737
var reserialized = TestHelpers.Serialize(result, 56);
38-
Assert.That(reserialized, Is.EqualTo(data));
38+
Assert.That(reserialized, Is.EquivalentTo(data));
3939
}
4040
}

ME3Tweaks.Wwiser.Tests/ConvertTests/ActionConvertTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace ME3Tweaks.Wwiser.Tests.ConvertTests;
55
public class ActionTests
66
{
77
[Test]
8-
public void Convert56to134_Works()
8+
public void ConvertActionItem_56to134_Works()
99
{
1010
var from = new BankSerializationContext(56);
1111
var to = new BankSerializationContext(134);
@@ -18,7 +18,7 @@ public void Convert56to134_Works()
1818
}
1919

2020
[Test]
21-
public void Convert134to56_Works()
21+
public void ConvertActionItem_134to56_Works()
2222
{
2323
var from = new BankSerializationContext(134);
2424
var to = new BankSerializationContext(56);

ME3Tweaks.Wwiser.Tests/ConvertTests/ActorMixerConvertTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace ME3Tweaks.Wwiser.Tests.ConvertTests;
66
public class ActorMixerConvertTests
77
{
88
[Test]
9-
public void Convert56to134_Works()
9+
public void ConvertActorMixer_56to134_Works()
1010
{
1111
var from = new BankSerializationContext(56);
1212
var to = new BankSerializationContext(134);

ME3Tweaks.Wwiser.Tests/ConvertTests/HircChunkConvertTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace ME3Tweaks.Wwiser.Tests.ConvertTests;
77
public class HircChunkConvertTests
88
{
99
[Test]
10-
public void Convert56to134_Works()
10+
public void ConvertHircChunk_56to134_ReturnsCorrectDataLength()
1111
{
1212
var from = new BankSerializationContext(56);
1313
var to = new BankSerializationContext(134);
@@ -22,8 +22,8 @@ public void Convert56to134_Works()
2222
var data134 = TestData.GetTestDataBytes(@"Convert", @"HIRC", @"134.bin");
2323
Assert.That(newData.Length, Is.EqualTo(data134.Length));
2424

25-
var outfile = TestData.GetTestDataFilePath("Convert", "HIRC", "Out134");
25+
/*var outfile = TestData.GetTestDataFilePath("Convert", "HIRC", "Out134");
2626
File.WriteAllText(outfile, string.Empty); // Wipe out file
27-
TestHelpers.WriteStreamToFile(new MemoryStream(newData), outfile);
27+
TestHelpers.WriteStreamToFile(new MemoryStream(newData), outfile);*/
2828
}
2929
}

ME3Tweaks.Wwiser.Tests/ConvertTests/ParameterNodeConvertTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace ME3Tweaks.Wwiser.Tests.ConvertTests;
66
public class ParameterNodeConvertTests
77
{
88
[Test]
9-
public void Convert56to134_Works()
9+
public void ConvertParameterNode_56to134_Works()
1010
{
1111
var from = new BankSerializationContext(56);
1212
var to = new BankSerializationContext(134);
@@ -23,7 +23,7 @@ public void Convert56to134_Works()
2323
}
2424

2525
[Test]
26-
public void Convert134to56_Works()
26+
public void ConvertParameterNode_134to56_Works()
2727
{
2828
var from = new BankSerializationContext(134);
2929
var to = new BankSerializationContext(56);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
namespace ME3Tweaks.Wwiser.Tests.FormatTests;
2+
3+
public class BankHeaderPaddingTests
4+
{
5+
[TestCase(8)]
6+
[TestCase(24)]
7+
[TestCase(0x158)]
8+
public void DataProperlyAligned_PaddingIsZero(long dataOffset)
9+
{
10+
var padding = new BankHeaderPadding();
11+
padding.SetPadding(dataOffset);
12+
13+
Assert.That(padding.Padding.Length, Is.EqualTo(0));
14+
}
15+
16+
[TestCase(0, 8)]
17+
[TestCase(4, 4)]
18+
[TestCase(33, 7)]
19+
public void DataNotAligned_PaddingAlignsProperly(long dataOffset, long expectedPadding)
20+
{
21+
var padding = new BankHeaderPadding();
22+
padding.SetPadding(dataOffset);
23+
24+
Assert.That(padding.Padding.Length, Is.LessThanOrEqualTo(8));
25+
Assert.That(padding.Padding.Length, Is.EqualTo(expectedPadding));
26+
}
27+
28+
[TestCase(15, 9)]
29+
[TestCase(12, 12)]
30+
[TestCase(0x15E, 10)]
31+
public void DataNotAligned_PaddingProperlyOffsetBy8(long dataOffset, long expectedPadding)
32+
{
33+
var padding = new BankHeaderPadding();
34+
padding.SetPadding(dataOffset);
35+
36+
Assert.That(padding.Padding.Length, Is.GreaterThan(8));
37+
Assert.That(padding.Padding.Length, Is.EqualTo(expectedPadding));
38+
}
39+
}

ME3Tweaks.Wwiser.Tests/FormatTests/UniTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class UniTests
88
[TestCase(new byte[] {0x0, 0x0, 0xC0, 0xC0 })]
99
[TestCase(new byte[] {0x0, 0x0, 0x40, 0xC1 })]
1010
[TestCase(new byte[] {0xBF, 0x65, 0xD7, 0x17 })]
11-
public void UniReserializes(byte[] data)
11+
public void Uni_ReserializesSameBytes(byte[] data)
1212
{
1313
var (_, result) = TestHelpers.Deserialize<Uni>(data, 113);
1414
var reserialized = TestHelpers.Serialize(result, 113);

ME3Tweaks.Wwiser.Tests/HierarchyTests/HierarchyChunkTests.cs

+16-4
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,20 @@ namespace ME3Tweaks.Wwiser.Tests.HierarchyTests;
55

66
public class HierarchyChunkTests
77
{
8+
[TestCase("HIRCv44.bin", 44)]
9+
[TestCase("HIRCv56.bin", 56)]
10+
[TestCase("HIRCv134.bin", 134)]
11+
public void SimpleHircChunk_Reserializes(string fileName, int version)
12+
{
13+
var data = TestData.GetTestDataBytes(@"Hierarchy", @"SmallFullChunks", fileName);
14+
var (serializer, result) = TestHelpers.Deserialize<ChunkContainer>(data, version);
15+
16+
var reserialized = TestHelpers.Serialize(result, version);
17+
Assert.That(reserialized, Is.EquivalentTo(data));
18+
}
19+
820
[Test]
9-
public void SimpleChunk_v44_Parses()
21+
public void SimpleHircChunk_v44_Parses()
1022
{
1123
var data = TestData.GetTestDataBytes(@"Hierarchy", @"SmallFullChunks", @"HIRCv44.bin");
1224
var (serializer, result) = TestHelpers.Deserialize<ChunkContainer>(data, 44);
@@ -32,7 +44,7 @@ public void SimpleChunk_v44_Parses()
3244
}
3345

3446
[Test]
35-
public void SimpleChunk_v56_Parses()
47+
public void SimpleHircChunk_v56_Parses()
3648
{
3749
var data = TestData.GetTestDataBytes(@"Hierarchy", @"SmallFullChunks", @"HIRCv56.bin");
3850
var (serializer, result) = TestHelpers.Deserialize<ChunkContainer>(data, 56);
@@ -58,7 +70,7 @@ public void SimpleChunk_v56_Parses()
5870
}
5971

6072
[Test]
61-
public void SimpleChunk_v134_Parses()
73+
public void SimpleHircChunk_v134_Parses()
6274
{
6375
var data = TestData.GetTestDataBytes(@"Hierarchy", @"SmallFullChunks", @"HIRCv134.bin");
6476
var (serializer, result) = TestHelpers.Deserialize<ChunkContainer>(data, 134);
@@ -84,7 +96,7 @@ public void SimpleChunk_v134_Parses()
8496
}
8597

8698
[Test]
87-
public void BigChunkTest()
99+
public void BigHircChunk_Reserializes()
88100
{
89101
var data = TestData.GetTestDataBytes(@"Hierarchy", @"LargeFullChunks", @"HIRC_V56.bin");
90102
var (serializer, result) = TestHelpers.Deserialize<ChunkContainer>(data, 56);

ME3Tweaks.Wwiser.Tests/HierarchyTests/StateChunkTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class StateChunkTests
77
{
88
[TestCase(new byte[] {00, 00}, 134)]
99
[TestCase(new byte[] {00, 00, 00, 00}, 120)]
10-
public void Empty_MultipleVersions_Parses(byte[] data, int version)
10+
public void EmptyStateChunk_MultipleVersions_Parses(byte[] data, int version)
1111
{
1212
var (_, result) = TestHelpers.Deserialize<StateChunk>(data, version);
1313

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using ME3Tweaks.Wwiser.Model.Hierarchy;
2+
3+
namespace ME3Tweaks.Wwiser.Tests.HierarchyTests;
4+
5+
public class SwitchContainerTests
6+
{
7+
[TestCase("SwitchContainer_V56.bin", 56)]
8+
public void SwitchContainer_Reserializes(string filename, int version)
9+
{
10+
var data = TestData.GetTestDataBytes(@"Hierarchy",@"SwitchContainer", filename);
11+
var (_, result) = TestHelpers.Deserialize<SwitchContainer>(data, version);
12+
13+
var reserialized = TestHelpers.Serialize(result, version);
14+
Assert.That(reserialized, Is.EquivalentTo(data));
15+
}
16+
}

ME3Tweaks.Wwiser.Tests/ParameterNodeTests/AdvSettingsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public class AdvSettingsTests
66
{
77
[TestCase("Empty_V134.bin", 134)]
88
[TestCase("Empty_V44.bin", 44)]
9-
public void Empty_MultipleVersions_Reserializes(string file, int version)
9+
public void EmptyAdvSettings_MultipleVersions_Reserializes(string file, int version)
1010
{
1111
var data = TestData.GetTestDataBytes(@"ParameterNode",@"AdvSettings", file);
1212
var (_, result) = TestHelpers.Deserialize<AdvSettingsParams>(data, version);

ME3Tweaks.Wwiser.Tests/ParameterNodeTests/FullParameterNode.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public class FullParameterNode
66
{
77
[TestCase("A_V134.bin", 134)]
88
[TestCase("A_V56.bin", 56)]
9-
public void Full_MultipleVersions_Reserializes(string file, int version)
9+
public void FullParameterNode_MultipleVersions_Reserializes(string file, int version)
1010
{
1111
var data = TestData.GetTestDataBytes(@"ParameterNode", file);
1212
var (_, result) = TestHelpers.Deserialize<NodeBaseParameters>(data, version);
Binary file not shown.

ME3Tweaks.Wwiser.Tests/WwiseBankParserTests.cs

+19-6
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,42 @@ public void OnInstantiation_WithFullBank_ParsesVersionCorrectly(string bankFileN
1010
Assert.That(parser.Version, Is.EqualTo(correctVersion));
1111
}
1212

13+
[Test]
14+
public void FullBank_Reserializes_Synchronous()
15+
{
16+
var parser = new WwiseBankParser(TestData.GetTestDataFilePath("WholeBanks", "ME3_v56_1.bnk"));
17+
parser.Deserialize();
18+
19+
var stream = new MemoryStream();
20+
parser.SerializeTo(stream);
21+
//TestHelpers.WriteStreamToFile(stream, TestData.GetTestDataFilePath("WholeBanks", "Out1.bnk"));
22+
var data = TestData.GetTestDataBytes("WholeBanks", "ME3_v56_1.bnk");
23+
Assert.That(stream.ToArray(), Is.EquivalentTo(data));
24+
}
25+
1326
[TestCase("ME3_v56_1.bnk")]
1427
[TestCase("ME3_v56_2.bnk")]
1528
[TestCase("ME3_v56_3.bnk")]
16-
public async Task FullBank_V56_Reserializes(string filename)
29+
public async Task FullBank_V56_Reserializes_Async(string filename)
1730
{
1831
var parser = new WwiseBankParser(TestData.GetTestDataFilePath("WholeBanks", filename));
19-
await parser.Deserialize();
32+
await parser.DeserializeAsync();
2033

2134
var stream = new MemoryStream();
22-
await parser.Serialize(stream);
35+
await parser.SerializeToAsync(stream);
2336
//TestHelpers.WriteStreamToFile(stream, TestData.GetTestDataFilePath("WholeBanks", "Out1.bnk"));
2437
var data = TestData.GetTestDataBytes("WholeBanks", filename);
2538
Assert.That(stream.ToArray(), Is.EquivalentTo(data));
2639
}
2740

2841
[TestCase("LE3_v134_1.bnk")] // TODO: What is at the end of this file?
29-
public async Task FullBank_V134_Reserializes(string filename)
42+
public async Task FullBank_V134_Reserializes_Async(string filename)
3043
{
3144
var parser = new WwiseBankParser(TestData.GetTestDataFilePath("WholeBanks", filename));
32-
await parser.Deserialize();
45+
await parser.DeserializeAsync();
3346

3447
var stream = new MemoryStream();
35-
await parser.Serialize(stream);
48+
await parser.SerializeToAsync(stream);
3649
//TestHelpers.WriteStreamToFile(stream, TestData.GetTestDataFilePath("WholeBanks", "Out1.bnk"));
3750
var data = TestData.GetTestDataBytes("WholeBanks", filename);
3851
var outData = stream.ToArray();

ME3Tweaks.Wwiser/BankConversion/AttenuationConverter.cs

+8-4
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@ public class AttenuationConverter(BankSerializationContext from, BankSerializati
66
{
77
public void Convert(Attenuation item)
88
{
9-
item.Curves.Insert(2, item.Curves[1].Clone());
10-
item.CurveToUse.CurveMap[2] = 2;
11-
for(var i = 3; i < item.CurveToUse.CurveMap.Length; i++)
9+
if (item.Curves.Count >= 2)
1210
{
13-
if (item.CurveToUse.CurveMap[i] > -1) item.CurveToUse.CurveMap[i]++;
11+
item.Curves.Insert(2, item.Curves[1].Clone());
12+
item.CurveToUse.CurveMap[2] = 2;
13+
for(var i = 3; i < item.CurveToUse.CurveMap.Length; i++)
14+
{
15+
if (item.CurveToUse.CurveMap[i] > -1) item.CurveToUse.CurveMap[i]++;
16+
}
1417
}
1518

1619
foreach (var c in item.Curves)
1720
{
21+
// Could be mass effect le only
1822
RtpcConverter.ConvertRtpcFloatLt0(c);
1923
}
2024
}

ME3Tweaks.Wwiser/Model/Action/Specific/SetGameParameter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace ME3Tweaks.Wwiser.Model.Action.Specific;
66

7-
public class SetGameParameter
7+
public class SetGameParameter : ISpecificParams
88
{
99
[FieldOrder(0)]
1010
[SerializeWhenVersion(89, ComparisonOperator.GreaterThan)]

0 commit comments

Comments
 (0)