protected AggregationServiceTestBase() { _metadata = new EntityMetadata(1, 3); _property0 = _metadata.Properties[0]; _property1 = _metadata.Properties[1]; _property2 = _metadata.Properties[2]; _aggregatorConfig0 = new WgtAvgPropertyAggregatorConfig(0, _property0, _property1); _aggregatorConfig1 = new WgtAvgPropertyAggregatorConfig(1, _property1, _property2); _aggregatorConfig2 = new WgtAvgPropertyAggregatorConfig(2, _property0, _property2); _entity0 = CreateEntity(0, 10, 20, 30); _entity1 = CreateEntity(1, 11, 21, 31); _entity2 = CreateEntity(2, 12, 22, 32); _set = new EntitySet { _entity0, _entity1 }; var config = new AggregationConfig(_metadata, new[] { _aggregatorConfig0, _aggregatorConfig1, _aggregatorConfig2 }); var service = new TAggregationService(); _root = service.Aggregate(_set, config, _metadata); _root.Start(); _set.Add(_entity2); _rootResult = _root.Result; }
private static void Dump(IAggregationResult result, EntityMetadata metadata, AggregationConfig config, string filepath) { using (var writer = new StreamWriter(File.Create(filepath))) { writer.Write(String.Join("", Enumerable.Range(0, metadata.KeyCount).Select(i => "Key" + i + ","))); writer.WriteLine(String.Join(",", config.Aggregators.Select(a => "\"" + a.Name + "\""))); var keys = new int[metadata.KeyCount]; Dump(writer, result, config, keys, 0); } }
private static void Dump(IAggregationResult result, EntityMetadata metadata, AggregationConfig config, string filepath) { using (var writer = new StreamWriter(File.Create(filepath))) { writer.Write(String.Join("", Enumerable.Range(0, metadata.KeyCount).Select(i => "Key" + i + ","))); writer.WriteLine(String.Join(",", config.Aggregators.Select(a => "\"" + a.Name + "\""))); var keys = new int[metadata.KeyCount]; Dump(writer, result, config, keys, 0); } }
private static void Dump(TextWriter writer, IAggregationResult result, AggregationConfig config, int[] keys, int level) { for (var i = 0; i < keys.Length; i++) { if (i < level) { writer.Write(keys[i] + ","); } else { writer.Write("-,"); } } writer.WriteLine(String.Join(",", config.Aggregators.Select(a => result.Get(a).ToString("")))); foreach (var groupKey in result.Keys.OrderBy(k => k)) { keys[level] = groupKey; Dump(writer, result.Get(groupKey), config, keys, level + 1); } }
private static void Dump(TextWriter writer, IAggregationResult result, AggregationConfig config, int[] keys, int level) { for (var i = 0; i < keys.Length; i++) { if (i < level) { writer.Write(keys[i] + ","); } else { writer.Write("-,"); } } writer.WriteLine(String.Join(",", config.Aggregators.Select(a => result.Get(a).ToString("")))); foreach (var groupKey in result.Keys.OrderBy(k => k)) { keys[level] = groupKey; Dump(writer, result.Get(groupKey), config, keys, level + 1); } }
private void Verify(IAggregationResult result, params Entity[] entities) { Verify(entities, result, _aggregatorConfig0); Verify(entities, result, _aggregatorConfig1); Verify(entities, result, _aggregatorConfig2); }
private void Verify(Entity[] entities, IAggregationResult result, WgtAvgPropertyAggregatorConfig config) { Assert.Equal(CalculateWgtAvg(entities, config.Properties[0], config.Properties[1]), result.Get(config)); }