private void TestHashTransformHelper <T>(T[] data, uint[] results, NumberType type)
        {
            var builder = new ArrayDataViewBuilder(Env);

            builder.AddColumn("F1", type, data);
            var srcView = builder.GetDataView();

            HashTransform.Column col = new HashTransform.Column();
            col.Source   = "F1";
            col.HashBits = 5;
            col.Seed     = 42;
            HashTransform.Arguments args = new HashTransform.Arguments();
            args.Column = new HashTransform.Column[] { col };

            var hashTransform = new HashTransform(Env, args, srcView);

            using (var cursor = hashTransform.GetRowCursor(c => true))
            {
                var  resultGetter = cursor.GetGetter <uint>(1);
                uint resultRow    = 0;
                foreach (var r in results)
                {
                    Assert.True(cursor.MoveNext());
                    resultGetter(ref resultRow);
                    Assert.True(resultRow == r);
                }
            }
        }
        private void TestHashTransformVectorHelper(ArrayDataViewBuilder builder, uint[][] results)
        {
            var srcView = builder.GetDataView();

            HashTransform.Column col = new HashTransform.Column();
            col.Source   = "F1V";
            col.HashBits = 5;
            col.Seed     = 42;
            HashTransform.Arguments args = new HashTransform.Arguments();
            args.Column = new HashTransform.Column[] { col };

            var hashTransform = new HashTransform(Env, args, srcView);

            using (var cursor = hashTransform.GetRowCursor(c => true))
            {
                var            resultGetter = cursor.GetGetter <VBuffer <uint> >(1);
                VBuffer <uint> resultRow    = new VBuffer <uint>();
                foreach (var r in results)
                {
                    Assert.True(cursor.MoveNext());
                    resultGetter(ref resultRow);

                    Assert.True(resultRow.Length == r.Length);
                    for (int i = 0; i < r.Length; i++)
                    {
                        Assert.True(resultRow.GetItemOrDefault(i) == r[i]);
                    }
                }
            }
        }