public void WriteResult(GRMResult result, string outputFilePath) { using (var fileStream = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write)) using (var writer = new StreamWriter(fileStream)) { var stringBuilder = new StringBuilder(); foreach (var rule in result.Rules) { stringBuilder.AppendLine(SEPARATOR); stringBuilder.AppendLine(string.Format("{0}: '{1}':", GetDecisionAttributeName(result.DecisionAttributeIndex, result.AttributeNames), rule.Decision)); stringBuilder.AppendLine(SUBSEPARATOR); foreach (var generator in rule.Generators) { stringBuilder.AppendLine(FormatGenerator(generator, result.AttributeNames)); } stringBuilder.AppendLine(); } writer.Write(stringBuilder.ToString()); } }
protected override void AssertResult(GRMResult result) { Assert.Equal(1, result.Rules.Count()); Assert.True(result.Rules.Any(x => x.Decision == "+")); var unaccRule = result.Rules.Single(x => x.Decision == "+"); Assert.Equal(2, unaccRule.Generators.Count); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "a" }, new Item { AttributeID = 1, Value = "b" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 1, Value = "b" }, new Item { AttributeID = 3, Value = "d" }); }
private string FormatHeaders(GRMResult result) { var headers = new List <string>(); for (int i = 0; i < result.AttributesCount; i++) { if (i == result.DecisionAttributeIndex) { continue; } if (result.AttributeNames != null) { headers.Add(result.AttributeNames[i]); } else { headers.Add(string.Format("Attribute {0}", i + 1)); } } if (result.AttributeNames != null) { headers.Add(result.AttributeNames[result.DecisionAttributeIndex]); } else { headers.Add("Decision"); } return(string.Join(SEPARATOR, headers.ToArray())); }
private static void WriteGRMResult(GRMResult result, string outputPath) { var textOutputFilePath = outputPath + "_rules.txt"; new TextResultWriter().WriteResult(result, textOutputFilePath); Console.WriteLine("Text result saved to {0}", textOutputFilePath); var csvOutputFilePath = outputPath + "_rules.csv"; new CSVResultWriter().WriteResult(result, csvOutputFilePath); Console.WriteLine("CSV result saved to {0}", csvOutputFilePath); }
public void WriteResult(GRMResult result, string outputFilePath) { using (var fileStream = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write)) using (var writer = new StreamWriter(fileStream)) { var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(FormatHeaders(result)); foreach (var rule in result.Rules) { foreach (var generator in rule.Generators) { stringBuilder.AppendLine(FormatGenerator(generator, result.AttributesCount, result.DecisionAttributeIndex, rule.Decision)); } } writer.Write(stringBuilder.ToString()); } }
protected override void AssertResult(GRMResult result) { var taskInfo = ProgressTrackerContainer.CurrentProgressTracker.GetInfo(); Console.WriteLine("Execution lasted: {0}", taskInfo.Duration); }
protected abstract void AssertResult(GRMResult result);
protected override void AssertResult(GRMResult result) { Assert.Equal(2, result.Rules.Count()); // Assert rule for unacc Assert.True(result.Rules.Any(x => x.Decision == "unacc")); var unaccRule = result.Rules.Single(x => x.Decision == "unacc"); Assert.Equal(13, unaccRule.Generators.Count); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 3, Value = "2" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "vhigh" }, new Item { AttributeID = 4, Value = "small" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 1, Value = "vhigh" }, new Item { AttributeID = 4, Value = "small" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "med" }, new Item { AttributeID = 1, Value = "high" }, new Item { AttributeID = 4, Value = "small" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "high" }, new Item { AttributeID = 4, Value = "small" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 2, Value = "2" }, new Item { AttributeID = 3, Value = "more" }, new Item { AttributeID = 4, Value = "small" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 5, Value = "low" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "vhigh" }, new Item { AttributeID = 2, Value = "2" }, new Item { AttributeID = 4, Value = "med" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 1, Value = "vhigh" }, new Item { AttributeID = 2, Value = "2" }, new Item { AttributeID = 4, Value = "med" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "high" }, new Item { AttributeID = 2, Value = "2" }, new Item { AttributeID = 4, Value = "med" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "vhigh" }, new Item { AttributeID = 1, Value = "vhigh" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "vhigh" }, new Item { AttributeID = 1, Value = "high" }); AssertGeneratorIsInRule(unaccRule, new Item { AttributeID = 0, Value = "high" }, new Item { AttributeID = 1, Value = "vhigh" }); // Assert rule for acc Assert.True(result.Rules.Any(x => x.Decision == "acc")); var accRule = result.Rules.Single(x => x.Decision == "acc"); Assert.Equal(10, accRule.Generators.Count); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "low" }, new Item { AttributeID = 1, Value = "high" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "med" }, new Item { AttributeID = 1, Value = "med" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "med" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "vhigh" }, new Item { AttributeID = 1, Value = "med" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "vhigh" }, new Item { AttributeID = 1, Value = "low" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "med" }, new Item { AttributeID = 1, Value = "vhigh" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "low" }, new Item { AttributeID = 1, Value = "vhigh" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "high" }, new Item { AttributeID = 1, Value = "high" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "med" }, new Item { AttributeID = 1, Value = "high" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "high" }, new Item { AttributeID = 1, Value = "med" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); AssertGeneratorIsInRule(accRule, new Item { AttributeID = 0, Value = "high" }, new Item { AttributeID = 1, Value = "low" }, new Item { AttributeID = 3, Value = "4" }, new Item { AttributeID = 5, Value = "high" }); }