static Tables() { Array[] arrays = ArrayUnpacker.UnpackArrays(PackedTables.Tables); HuffmanSpectrumA = GenerateHuffmanCodebooks((short[][][])arrays[4], (byte[][][])arrays[0], (byte[][])arrays[6]); HuffmanSpectrumB = GenerateHuffmanCodebooks((short[][][])arrays[5], (byte[][][])arrays[1], (byte[][])arrays[7]); HuffmanSpectrum = new[] { HuffmanSpectrumA, HuffmanSpectrumB }; HuffmanScaleFactorsUnsigned = GenerateHuffmanCodebooks((short[][])arrays[9], (byte[][])arrays[2], (byte[])arrays[8]); HuffmanScaleFactorsSigned = GenerateHuffmanCodebooks((short[][])arrays[10], (byte[][])arrays[3], (byte[])arrays[8]); ScaleFactorWeights = (byte[][])arrays[11]; BexGroupInfo = (byte[][])arrays[12]; BexEncodedValueCounts = (byte[][])arrays[13]; BexDataLengths = (byte[][][])arrays[14]; BexMode0Bands3 = (double[][])arrays[15]; BexMode0Bands4 = (double[][])arrays[16]; BexMode0Bands5 = (double[][])arrays[17]; BexMode2Scale = (double[])arrays[18]; BexMode3Initial = (double[])arrays[19]; BexMode3Rate = (double[])arrays[20]; BexMode4Multiplier = (double[])arrays[21]; }
public static void TestPackingIndividual(Array array, Array expected, Type type) { expected = expected ?? array; var packer = new ArrayPacker(); packer.Add(array, type); byte[] packed = packer.Pack(); Array[] unpacked = ArrayUnpacker.UnpackArrays(packed); Assert.Equal(expected, unpacked[0]); }
static CriHcaTables() { Array[] arrays = ArrayUnpacker.UnpackArrays(PackedTables); QuantizeSpectrumBits = (byte[][])arrays[0]; QuantizeSpectrumValue = (byte[][])arrays[1]; QuantizedSpectrumBits = (byte[][])arrays[2]; QuantizedSpectrumMaxBits = (byte[])arrays[3]; QuantizedSpectrumValue = (sbyte[][])arrays[4]; ScaleToResolutionCurve = (byte[])arrays[5]; AthCurve = (byte[])arrays[6]; MdctWindow = (double[])arrays[7]; DefaultChannelMapping = (byte[])arrays[8]; ValidChannelMappings = (byte[][])arrays[9]; }
public static void TestPackingAll(object[][] arrays) { var packer = new ArrayPacker(); foreach (object[] array in arrays) { packer.Add(array[0] as Array, array[2] as Type); } byte[] packed = packer.Pack(); Array[] unpacked = ArrayUnpacker.UnpackArrays(packed); for (int i = 0; i < arrays.Length; i++) { object expected = arrays[i][1] ?? arrays[i][0]; Assert.Equal(expected, unpacked[i]); } }