private SpecificationDataset( [NotNull] QualitySpecificationElement qualitySpecificationElement, [NotNull] DatasetTestParameterValue datasetTestParameterValue) { QualitySpecificationElement = qualitySpecificationElement; _datasetTestParameterValue = datasetTestParameterValue; _allowImage.Tag = QualityConditionType.Allowed; _continueImage.Tag = QualityConditionType.ContinueOnError; _stopImage.Tag = QualityConditionType.StopOnError; Dataset dataset = datasetTestParameterValue.DatasetValue; if (dataset != null) { string datasetImageKey = DatasetTypeImageLookup.GetImageKey(dataset); DatasetType = _datasetImageList[datasetImageKey]; } }
public void CanClone() { string parameterName = "p1Name"; var dataset = new ErrorLineDataset("LineDataset"); var testParameterValue = new DatasetTestParameterValue(parameterName, typeof(IDummyDatasetType)); testParameterValue.DatasetValue = dataset; testParameterValue.FilterExpression = "filterExp"; testParameterValue.UsedAsReferenceData = true; DatasetTestParameterValue clone = (DatasetTestParameterValue)testParameterValue.Clone(); Assert.IsTrue(clone.Equals(testParameterValue)); Assert.IsTrue(testParameterValue.DataType == clone.DataType); Assert.IsTrue(dataset.Equals(clone.DatasetValue)); }
public static void AddParameterValue(QualityCondition qualityCondition, [NotNull] string parameterName, [CanBeNull] Dataset value, string filterExpression = null, bool usedAsReferenceData = false) { Assert.ArgumentNotNullOrEmpty(parameterName, nameof(parameterName)); TestFactory factory = TestFactoryUtils.GetTestFactory(qualityCondition.TestDescriptor); TestParameter parameter = Assert.NotNull(factory).GetParameter(parameterName); TestParameterTypeUtils.AssertValidDataset(parameter, value); var parameterValue = new DatasetTestParameterValue(parameter, value, filterExpression, usedAsReferenceData); parameterValue.DataType = parameter.Type; qualityCondition.AddParameterValue(parameterValue); }
public static DatasetDependencyGraph GetGraph( [NotNull] IEnumerable <QualitySpecification> qualitySpecifications, bool exportBidirectionalDependenciesAsUndirectedEdges = false, bool includeSelfDependencies = false) { Assert.ArgumentNotNull(qualitySpecifications, nameof(qualitySpecifications)); QualitySpecification union = Union(qualitySpecifications); var result = new DatasetDependencyGraph(GetDatasets(union), union.Name); foreach (QualitySpecificationElement element in union.Elements) { QualityCondition qualityCondition = element.QualityCondition; List <DatasetTestParameterValue> datasetTestParameterValues = GetDatasetTestParameterValues(qualityCondition).ToList(); for (var i = 0; i < datasetTestParameterValues.Count; i++) { DatasetTestParameterValue value1 = datasetTestParameterValues[i]; if (value1.DatasetValue == null) { continue; } int startIndex = exportBidirectionalDependenciesAsUndirectedEdges ? i + 1 // half matrix : 0; // full matrix for (int j = startIndex; j < datasetTestParameterValues.Count; j++) { if (i == j) { continue; } DatasetTestParameterValue value2 = datasetTestParameterValues[j]; if (value2.DatasetValue == null) { continue; } if (!includeSelfDependencies && Equals(value1.DatasetValue, value2.DatasetValue)) { // dependency between same dataset (but different parameter indexes), ignore continue; } if (value1.UsedAsReferenceData) { // no dependency from value1 to value2 continue; } if (value1.TestParameterName == value2.TestParameterName) { if (ExcludeDependenciesWithinMultiValuedParameter(qualityCondition, value1 .TestParameterName) ) { continue; } } bool directed; if (exportBidirectionalDependenciesAsUndirectedEdges) { // if (value2 is used as reference data: the dependency is directed) directed = value2.UsedAsReferenceData; } else { // always directed (bidirectional dependencies represented as two directed dependencies) directed = true; } result.AddDependency(element, value1.DatasetValue, value2.DatasetValue, value1.TestParameterName, value2.TestParameterName, value1.FilterExpression, value2.FilterExpression, directed); } } } return(result); }