public void DifferenceOperatorForNulls() { DivikResult r1 = null; DivikResult r2 = null; Assert.False(condition: r1 != r2, message: "Nulls indicated as unequal"); }
/// <summary> /// Performs DiviK clustering on the specified data. /// </summary> /// <param name="dataset">Input dataset.</param> /// <param name="options">Configuration.</param> /// <returns>Segmentation result.</returns> /// <exception cref="System.ObjectDisposedException">thrown if this object has been disposed.</exception> public DivikResult Divik(IDataset dataset, DivikOptions options) { // This is needed to not to make MCR go wild const int numberOfOutputArgs = 2; var coordinates = dataset.GetRawSpacialCoordinates(is2D: true); var coords = new double[coordinates.GetLength(dimension: 0), coordinates.GetLength(dimension: 1)]; for (var i = 0; i < coordinates.GetLength(dimension: 0); ++i) { for (var j = 0; j < coordinates.GetLength(dimension: 1); ++j) { coords[i, j] = coordinates[i, j]; } } var varargin = options.ToVarargin(); var matlabDivikResult = _segmentation.divik( numberOfOutputArgs, dataset.GetRawIntensities(), coordinates, varargin); // matlabResult[0] is equal to the "partition" field in matlabResult[1], that's why we only use matlabResult[1] // Besides it helps to create recursive single constructor for DivikResult var result = new DivikResult(matlabResult: matlabDivikResult[Segmentation.DivikStructureLocation]); return(result); }
public void EqualityOperatorForNulls() { DivikResult r1 = null; DivikResult r2 = null; Assert.True(condition: r1 == r2, message: "Nulls not indicated as equal"); }
/// <summary> /// Initializes a new instance of the <see cref="DivikResultSummary"/> class. /// </summary> /// <param name="tree">The result tree.</param> public DivikResultSummary(DivikResult tree) { Depth = tree.Depth(); var counts = Partition.GetClusterSizes(tree.Merged).Values; NumberOfClusters = (uint)counts.Count; var numberOfObservations = tree.Merged.Length; ClusterSizeMean = (double)numberOfObservations / NumberOfClusters; ClusterSizeVariance = counts .Select(count => Math.Pow(count - ClusterSizeMean, 2)) .Sum() / NumberOfClusters; SizeReduction = 1.0 - (double)NumberOfClusters / numberOfObservations; }
public void SetUpFixture() { var dataset = new BasicTextDataset(_testFilePath); var options = DivikOptions.ForLevels(levels: 1); options.MaxK = 2; options.Caching = false; options.PlottingPartitions = false; options.PlottingDecomposition = false; options.PlottingDecompositionRecursively = false; options.PlottingRecursively = false; options.UsingAmplitudeFiltration = false; _segmentation = new Segmentation(); _result = _segmentation.Divik(dataset, options); }
public void InequalityOperatorAgainstNull() { DivikResult r1 = null; Assert.True(condition: r1 != _result, message: "null not indicated unequal to instance"); }
public void EqualityOperatorAgainstNull() { DivikResult r1 = null; Assert.False(condition: r1 == _result, message: "null indicated equal to instance"); }