public void BuildLightGbmPipelineNode()
        {
            var sweepParams = SweepableParams.BuildLightGbmParams();

            foreach (var sweepParam in sweepParams)
            {
                sweepParam.RawValue = 1;
            }

            var pipelineNode = new LightGbmBinaryExtension().CreatePipelineNode(sweepParams, new ColumnInformation());

            var expectedJson = @"{
  ""Name"": ""LightGbmBinary"",
  ""NodeType"": ""Trainer"",
  ""InColumns"": [
    ""Features""
  ],
  ""OutColumns"": [
    ""Score""
  ],
  ""Properties"": {
    ""NumberOfIterations"": 20,
    ""LearningRate"": 1,
    ""NumberOfLeaves"": 1,
    ""MinimumExampleCountPerLeaf"": 10,
    ""UseCategoricalSplit"": false,
    ""HandleMissingValue"": false,
    ""UseZeroAsMissingValue"": false,
    ""MinimumExampleCountPerGroup"": 50,
    ""MaximumCategoricalSplitPointCount"": 16,
    ""CategoricalSmoothing"": 10,
    ""L2CategoricalRegularization"": 0.5,
    ""Booster"": {
      ""Name"": ""GradientBooster.Options"",
      ""Properties"": {
        ""L2Regularization"": 0.5,
        ""L1Regularization"": 0.5
      }
    },
    ""LabelColumnName"": ""Label""
  }
}";

            Util.AssertObjectMatchesJson(expectedJson, pipelineNode);
        }
        public void BuildLightGbmPipelineNodeDefaultParams()
        {
            var pipelineNode = new LightGbmBinaryExtension().CreatePipelineNode(
                new List <SweepableParam>(),
                new ColumnInformation());
            var expectedJson = @"{
  ""Name"": ""LightGbmBinary"",
  ""NodeType"": ""Trainer"",
  ""InColumns"": [
    ""Features""
  ],
  ""OutColumns"": [
    ""Score""
  ],
  ""Properties"": {
    ""LabelColumnName"": ""Label""
  }
}";

            Util.AssertObjectMatchesJson(expectedJson, pipelineNode);
        }