private static void testGArray <T>(T[] input, LengthPrefix lengthPrefix = LengthPrefix.Int32) where T : unmanaged { string typ = typeof(T).Name; TUtils.Test($"read/write {typ}[].length:{lengthPrefix} ({TUtils.IListToString(input)})", () => { bw.Position = 0; bw.WriteArray(input, lengthPrefix); bw.Position = 0; T[] result = br.ReadArray <T>(lengthPrefix); if (input.Length != result.Length) { TUtils.WriteFail($"FAIL length not equal{input.Length}!={result.Length}"); return(TestResult.Failure); } if (TUtils.IsIListEqual(input, result)) { TUtils.WriteSucces($"OK"); return(TestResult.Success); } else { TUtils.WriteFail($"FAIL array({TUtils.IListToString(result)})"); return(TestResult.Failure); } }); }
private static void testString(string str, LengthPrefix lengthPrefix = LengthPrefix.Default, CharSizePrefix charSizePrefix = CharSizePrefix.Default) { TUtils.Test($"read/write string[{charSizePrefix}].length:{lengthPrefix} ({str})", () => { bw.Position = 0; bw.WriteString(str, lengthPrefix, charSizePrefix); bw.Position = 0; string result = br.ReadString(lengthPrefix, charSizePrefix); if (result.Equals(str)) { TUtils.WriteSucces("OK"); return(TestResult.Success); } else { TUtils.WriteFail($"FAIL \"{result}\""); return(TestResult.Failure); } }); }
private static void testArray <T>(Action <T[]> write, Func <T[]> read, T[] input, LengthPrefix lengthPrefix = LengthPrefix.Default) { string typ = typeof(T).Name; TUtils.Test("read/write " + typ + "[] (" + TUtils.IListToString(input) + ")", () => { bw.Position = 0; write(input); bw.Position = 0; T[] result = read(); if (input.Length != result.Length) { TUtils.WriteFail($"FAIL length not equal{input.Length}!={result.Length}"); return(TestResult.Failure); } if (TUtils.IsIListEqual(input, result)) { TUtils.WriteSucces($"OK"); return(TestResult.Success); } else { TUtils.WriteFail($"FAIL array({TUtils.IListToString(result)})"); return(TestResult.Failure); } }); }
public static void BuildLengthPrefix(LengthPrefix prefix) { bitstream.Write ((byte)((byte)prefix & 0xFF)); }