public void PivotData_Slice() { var testData = generateData(); var pvtData = new PivotData(new string[] { "name", "date", "qty", "total" }, new CountAggregatorFactory(), testData); var slice1Data = pvtData.Slice(new string[] { "name", "qty" }, false); Assert.Equal(2, slice1Data.Dimensions.Length); var vk = new ValueKey("Test0", 0); Assert.Equal(pvtData["Test0", Key.Empty, 0, Key.Empty].Value, slice1Data[vk].Value); Assert.Equal(pvtData[Key.Empty, Key.Empty, Key.Empty, Key.Empty].Value, slice1Data[Key.Empty, Key.Empty].Value); var slice2Data = pvtData.Slice(new string[] { "name", "qty" }, false, (v) => { return(v.Key.DimKeys[0].Equals("Test0")); }); Assert.Equal(((uint)pvtData[Key.Empty, Key.Empty, Key.Empty, Key.Empty].Value) / 2, slice2Data[Key.Empty, Key.Empty].Value); // check zero-dim slice var sliceZeroDimData = slice2Data.Slice(null, false); Assert.Equal(slice2Data[Key.Empty, Key.Empty].Value, sliceZeroDimData[new object[0]].Value); }