public void UnindexedArray() { long[] expected = { 1, 16 }; VPackBuilder builder = new VPackBuilder(); builder.GetOptions().SetBuildUnindexedArrays(true); builder.Add(SliceType.Array, false); foreach (var l in expected) { builder.Add(l); } builder.Close(); VPackSlice slice = builder.Slice(); Assert.True(slice.IsType(SliceType.Array)); Assert.Equal(slice.Length, 2); for (int i = 0; i < expected.Length; i++) { VPackSlice at = slice[i]; Assert.True(at.IsInteger()); Assert.Equal(at.ToInt64(), expected[i]); } }
public void ArrayInArrayInArray() { //{ { { 1, 2, 3 } } } long[][][] values = new long[1][][]; values[0] = new long[1][]; values[0][0] = new long[] { 1, 2, 3 }; VPackBuilder builder = new VPackBuilder(); builder.Add(SliceType.Array); foreach (var lss in values) { builder.Add(SliceType.Array); foreach (var ls in lss) { builder.Add(SliceType.Array); foreach (var l in ls) { builder.Add(l); } builder.Close(); } builder.Close(); } builder.Close(); VPackSlice slice = builder.Slice(); Assert.True(slice.IsType(SliceType.Array)); Assert.Equal(slice.Length, values.Length); for (int i = 0; i < values.Length; i++) { VPackSlice lls = slice[i]; Assert.True(lls.IsType(SliceType.Array)); Assert.Equal(lls.Length, values[i].Length); for (int j = 0; j < values[i].Length; j++) { VPackSlice ls = lls[i]; Assert.True(ls.IsType(SliceType.Array)); Assert.Equal(ls.Length, values[i][j].Length); for (int k = 0; k < values[i][j].Length; k++) { VPackSlice l = ls[k]; Assert.True(l.IsInteger()); Assert.Equal(l.ToInt64(), values[i][j][k]); } } } }