static MemorySizeInfoTestCase ParseLine(string line, int lineNo) { Static.Assert(MiscInstrInfoTestConstants.MemorySizeElemsPerLine == 6 ? 0 : -1); var elems = line.Split(commaSeparator, MiscInstrInfoTestConstants.MemorySizeElemsPerLine); if (elems.Length != MiscInstrInfoTestConstants.MemorySizeElemsPerLine) { throw new Exception($"Expected {MiscInstrInfoTestConstants.MemorySizeElemsPerLine - 1} commas"); } var tc = new MemorySizeInfoTestCase(); tc.LineNumber = lineNo; tc.MemorySize = ToEnumConverter.GetMemorySize(elems[0].Trim()); tc.Size = NumberConverter.ToInt32(elems[1].Trim()); tc.ElementSize = NumberConverter.ToInt32(elems[2].Trim()); tc.ElementType = ToEnumConverter.GetMemorySize(elems[3].Trim()); tc.ElementCount = NumberConverter.ToInt32(elems[4].Trim()); foreach (var value in elems[5].Split(spaceSeparator, StringSplitOptions.RemoveEmptyEntries)) { if (!InstructionInfoDicts.MemorySizeFlagsTable.TryGetValue(value, out var flags)) { throw new InvalidOperationException($"Invalid flags value: {value}"); } tc.Flags |= flags; } return(tc); }