Skip to content

Commit 63d5b2d

Browse files
authored
added tests (dotnet#187)
1 parent 0d93e80 commit 63d5b2d

File tree

5 files changed

+788
-159
lines changed

5 files changed

+788
-159
lines changed

src/mlnet.Test/CodeGenTests.cs

+2-156
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void TrainerGeneratorBasicNamedParameterTest()
2424
{"LearningRate", 0.1f },
2525
{"NumLeaves", 1 },
2626
};
27-
PipelineNode node = new PipelineNode("LightGbmBinary", PipelineNodeType.Trainer, new string[] { "Label" }, default(string), elementProperties);
27+
PipelineNode node = new PipelineNode("LightGbmBinary", PipelineNodeType.Trainer, default(string[]), default(string), elementProperties);
2828
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
2929
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
3030
var actual = codeGenerator.GenerateTrainerAndUsings();
@@ -44,7 +44,7 @@ public void TrainerGeneratorBasicAdvancedParameterTest()
4444
{"NumLeaves", 1 },
4545
{"UseSoftmax", true }
4646
};
47-
PipelineNode node = new PipelineNode("LightGbmBinary", PipelineNodeType.Trainer, new string[] { "Label" }, default(string), elementProperties);
47+
PipelineNode node = new PipelineNode("LightGbmBinary", PipelineNodeType.Trainer, default(string[]), default(string), elementProperties);
4848
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
4949
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
5050
var actual = codeGenerator.GenerateTrainerAndUsings();
@@ -169,159 +169,5 @@ public void TrainerComplexParameterTest()
169169
Assert.AreEqual(expectedUsings, actual.Item2);
170170

171171
}
172-
173-
#region Transform Tests
174-
[TestMethod]
175-
public void MissingValueReplacingTest()
176-
{
177-
var context = new MLContext();
178-
var elementProperties = new Dictionary<string, object>();//categorical
179-
PipelineNode node = new PipelineNode("MissingValueReplacing", PipelineNodeType.Transform, new string[] { "categorical_column_1" }, new string[] { "categorical_column_1" }, elementProperties);
180-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
181-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
182-
var actual = codeGenerator.GenerateTransformsAndUsings();
183-
var expectedTransform = "ReplaceMissingValues(new []{new MissingValueReplacingTransformer.ColumnInfo(\"categorical_column_1\",\"categorical_column_1\")})";
184-
string expectedUsings = "using Microsoft.ML.Transforms;\r\n";
185-
Assert.AreEqual(expectedTransform, actual[0].Item1);
186-
Assert.AreEqual(expectedUsings, actual[0].Item2);
187-
}
188-
189-
[TestMethod]
190-
public void OneHotEncodingTest()
191-
{
192-
var context = new MLContext();
193-
var elementProperties = new Dictionary<string, object>();//categorical
194-
PipelineNode node = new PipelineNode("OneHotEncoding", PipelineNodeType.Transform, new string[] { "categorical_column_1" }, new string[] { "categorical_column_1" }, elementProperties);
195-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
196-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
197-
var actual = codeGenerator.GenerateTransformsAndUsings();
198-
string expectedTransform = "Categorical.OneHotEncoding(new []{new OneHotEncodingEstimator.ColumnInfo(\"categorical_column_1\",\"categorical_column_1\")})";
199-
var expectedUsings = "using Microsoft.ML.Transforms.Categorical;\r\n";
200-
Assert.AreEqual(expectedTransform, actual[0].Item1);
201-
Assert.AreEqual(expectedUsings, actual[0].Item2);
202-
}
203-
204-
[TestMethod]
205-
public void NormalizingTest()
206-
{
207-
var context = new MLContext();
208-
var elementProperties = new Dictionary<string, object>();
209-
PipelineNode node = new PipelineNode("Normalizing", PipelineNodeType.Transform, new string[] { "numeric_column_1" }, new string[] { "numeric_column_1_copy" }, elementProperties);
210-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
211-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
212-
var actual = codeGenerator.GenerateTransformsAndUsings();
213-
string expectedTransform = "Normalize(\"numeric_column_1_copy\",\"numeric_column_1\")";
214-
string expectedUsings = null;
215-
Assert.AreEqual(expectedTransform, actual[0].Item1);
216-
Assert.AreEqual(expectedUsings, actual[0].Item2);
217-
}
218-
219-
[TestMethod]
220-
public void ColumnConcatenatingTest()
221-
{
222-
var context = new MLContext();
223-
var elementProperties = new Dictionary<string, object>();
224-
PipelineNode node = new PipelineNode("ColumnConcatenating", PipelineNodeType.Transform, new string[] { "numeric_column_1", "numeric_column_2" }, new string[] { "Features" }, elementProperties);
225-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
226-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
227-
var actual = codeGenerator.GenerateTransformsAndUsings();
228-
string expectedTransform = "Concatenate(\"Features\",new []{\"numeric_column_1\",\"numeric_column_2\"})";
229-
string expectedUsings = null;
230-
Assert.AreEqual(expectedTransform, actual[0].Item1);
231-
Assert.AreEqual(expectedUsings, actual[0].Item2);
232-
}
233-
234-
[TestMethod]
235-
public void ColumnCopyingTest()
236-
{
237-
var context = new MLContext();
238-
var elementProperties = new Dictionary<string, object>();//nume to num feature 2
239-
PipelineNode node = new PipelineNode("ColumnCopying", PipelineNodeType.Transform, new string[] { "numeric_column_1" }, new string[] { "numeric_column_2" }, elementProperties);
240-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
241-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
242-
var actual = codeGenerator.GenerateTransformsAndUsings();
243-
string expectedTransform = "CopyColumns(\"numeric_column_2\",\"numeric_column_1\")";
244-
string expectedUsings = null;
245-
Assert.AreEqual(expectedTransform, actual[0].Item1);
246-
Assert.AreEqual(expectedUsings, actual[0].Item2);
247-
}
248-
249-
[TestMethod]
250-
public void MissingValueIndicatingTest()
251-
{
252-
var context = new MLContext();
253-
var elementProperties = new Dictionary<string, object>();//numeric feature
254-
PipelineNode node = new PipelineNode("MissingValueIndicating", PipelineNodeType.Transform, new string[] { "numeric_column_1" }, new string[] { "numeric_column_1" }, elementProperties);
255-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
256-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
257-
var actual = codeGenerator.GenerateTransformsAndUsings();
258-
string expectedTransform = "IndicateMissingValues(new []{(\"numeric_column_1\",\"numeric_column_1\")})";
259-
string expectedUsings = null;
260-
Assert.AreEqual(expectedTransform, actual[0].Item1);
261-
Assert.AreEqual(expectedUsings, actual[0].Item2);
262-
}
263-
264-
[TestMethod]
265-
public void OneHotHashEncodingTest()
266-
{
267-
var context = new MLContext();
268-
var elementProperties = new Dictionary<string, object>();
269-
PipelineNode node = new PipelineNode("OneHotHashEncoding", PipelineNodeType.Transform, new string[] { "Categorical_column_1" }, new string[] { "Categorical_column_1" }, elementProperties);
270-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
271-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
272-
var actual = codeGenerator.GenerateTransformsAndUsings();
273-
string expectedTransform = "Categorical.OneHotHashEncoding(new []{new OneHotHashEncodingEstimator.ColumnInfo(\"Categorical_column_1\",\"Categorical_column_1\")})";
274-
var expectedUsings = "using Microsoft.ML.Transforms.Categorical;\r\n";
275-
Assert.AreEqual(expectedTransform, actual[0].Item1);
276-
Assert.AreEqual(expectedUsings, actual[0].Item2);
277-
}
278-
279-
[TestMethod]
280-
public void TextFeaturizingTest()
281-
{
282-
var context = new MLContext();
283-
var elementProperties = new Dictionary<string, object>();
284-
PipelineNode node = new PipelineNode("TextFeaturizing", PipelineNodeType.Transform, new string[] { "Text_column_1" }, new string[] { "Text_column_1" }, elementProperties);
285-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
286-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
287-
var actual = codeGenerator.GenerateTransformsAndUsings();
288-
string expectedTransform = "Text.FeaturizeText(\"Text_column_1\",\"Text_column_1\")";
289-
string expectedUsings = null;
290-
Assert.AreEqual(expectedTransform, actual[0].Item1);
291-
Assert.AreEqual(expectedUsings, actual[0].Item2);
292-
}
293-
294-
[TestMethod]
295-
public void TypeConvertingTest()
296-
{
297-
var context = new MLContext();
298-
var elementProperties = new Dictionary<string, object>();
299-
PipelineNode node = new PipelineNode("TypeConverting", PipelineNodeType.Transform, new string[] { "I4_column_1" }, new string[] { "R4_column_1" }, elementProperties);
300-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
301-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
302-
var actual = codeGenerator.GenerateTransformsAndUsings();
303-
string expectedTransform = "Conversion.ConvertType(new []{new TypeConvertingTransformer.ColumnInfo(\"R4_column_1\",DataKind.R4,\"I4_column_1\")})";
304-
string expectedUsings = "using Microsoft.ML.Transforms.Conversions;\r\n";
305-
Assert.AreEqual(expectedTransform, actual[0].Item1);
306-
Assert.AreEqual(expectedUsings, actual[0].Item2);
307-
}
308-
309-
[TestMethod]
310-
public void ValueToKeyMappingTest()
311-
{
312-
var context = new MLContext();
313-
var elementProperties = new Dictionary<string, object>();
314-
PipelineNode node = new PipelineNode("ValueToKeyMapping", PipelineNodeType.Transform, new string[] { "Label" }, new string[] { "Label" }, elementProperties);
315-
Pipeline pipeline = new Pipeline(new PipelineNode[] { node });
316-
CodeGenerator codeGenerator = new CodeGenerator(pipeline, null, null);
317-
var actual = codeGenerator.GenerateTransformsAndUsings();
318-
string expectedTransform = "Conversion.MapValueToKey(\"Label\",\"Label\")";
319-
var expectedUsings = "using Microsoft.ML.Transforms.Conversions;\r\n";
320-
Assert.AreEqual(expectedTransform, actual[0].Item1);
321-
Assert.AreEqual(expectedUsings, actual[0].Item2);
322-
}
323-
324-
#endregion
325-
326172
}
327173
}

0 commit comments

Comments
 (0)