void TestSelectKeepWithOrder()
        {
            var data = new[] { new TestClass()
                               {
                                   A = 1, B = 2, C = 3,
                               }, new TestClass()
                               {
                                   A = 4, B = 5, C = 6
                               } };
            var dataView = ComponentCreation.CreateDataView(Env, data);

            // Expected output will be CA
            var est          = ColumnSelectingEstimator.KeepColumns(Env, "C", "A");
            var transformer  = est.Fit(dataView);
            var result       = transformer.Transform(dataView);
            var foundColumnA = result.Schema.TryGetColumnIndex("A", out int aIdx);
            var foundColumnB = result.Schema.TryGetColumnIndex("B", out int bIdx);
            var foundColumnC = result.Schema.TryGetColumnIndex("C", out int cIdx);

            Assert.True(foundColumnA);
            Assert.Equal(1, aIdx);
            Assert.False(foundColumnB);
            Assert.True(foundColumnC);
            Assert.Equal(0, cIdx);
        }
        void TestSelectColumnsWithMissing()
        {
            var data = new[] { new TestClass()
                               {
                                   A = 1, B = 2, C = 3,
                               }, new TestClass()
                               {
                                   A = 4, B = 5, C = 6
                               } };
            var dataView = ComponentCreation.CreateDataView(Env, data);
            var est      = ColumnSelectingEstimator.KeepColumns(Env, "D", "G");

            Assert.Throws <ArgumentOutOfRangeException>(() => est.Fit(dataView));
        }
Exemple #3
0
        public void TestSelectColumnsWithMissing()
        {
            var data = new[] { new TestClass()
                               {
                                   A = 1, B = 2, C = 3,
                               }, new TestClass()
                               {
                                   A = 4, B = 5, C = 6
                               } };
            var dataView = ML.Data.LoadFromEnumerable(data);
            var est      = ColumnSelectingEstimator.KeepColumns(Env, "D", "G");

            Assert.Throws <ArgumentOutOfRangeException>(() => est.Fit(dataView));
        }
Exemple #4
0
        void TestSelectKeep()
        {
            var data = new[] { new TestClass()
                               {
                                   A = 1, B = 2, C = 3,
                               }, new TestClass()
                               {
                                   A = 4, B = 5, C = 6
                               } };
            var dataView     = ML.Data.LoadFromEnumerable(data);
            var est          = ColumnSelectingEstimator.KeepColumns(Env, "A", "C");
            var transformer  = est.Fit(dataView);
            var result       = transformer.Transform(dataView);
            var foundColumnA = result.Schema.TryGetColumnIndex("A", out int aIdx);
            var foundColumnB = result.Schema.TryGetColumnIndex("B", out int bIdx);
            var foundColumnC = result.Schema.TryGetColumnIndex("C", out int cIdx);

            Assert.True(foundColumnA);
            Assert.Equal(0, aIdx);
            Assert.False(foundColumnB);
            Assert.True(foundColumnC);
            Assert.Equal(1, cIdx);
        }
Exemple #5
0
 /// <summary>
 /// KeepColumns is used to select a list of columns that the user wants to keep on a given an input. Any column not specified
 /// will be dropped from the output output schema.
 /// </summary>
 /// <param name="catalog">The transform's catalog.</param>
 /// <param name="columnsToKeep">The array of column names to keep.</param>
 public static ColumnSelectingEstimator KeepColumns(this TransformsCatalog catalog, params string[] columnsToKeep)
 => ColumnSelectingEstimator.KeepColumns(CatalogUtils.GetEnvironment(catalog), columnsToKeep);