mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-10-14 19:05:01 +08:00
Add tests for KdTree, MathExtensions and Distances
Add reference to DLA project Make KdTree public Fix mode computation for multimodal
This commit is contained in:
@@ -7,37 +7,77 @@
|
||||
|
||||
// for kd-tree with line segments, see https://stackoverflow.com/questions/14376679/how-to-represent-line-segments-in-kd-tree
|
||||
|
||||
internal class KdTree : KdTree<PdfPoint>
|
||||
/// <summary>
|
||||
/// K-D tree data structure of <see cref="PdfPoint"/>.
|
||||
/// </summary>
|
||||
public class KdTree : KdTree<PdfPoint>
|
||||
{
|
||||
public KdTree(PdfPoint[] candidates) : base(candidates, p => p)
|
||||
/// <summary>
|
||||
/// K-D tree data structure of <see cref="PdfPoint"/>.
|
||||
/// </summary>
|
||||
/// <param name="points">The points used to build the tree.</param>
|
||||
public KdTree(PdfPoint[] points) : base(points, p => p)
|
||||
{ }
|
||||
|
||||
public PdfPoint FindNearestNeighbours(PdfPoint pivot, Func<PdfPoint, PdfPoint, double> distanceMeasure, out int index, out double distance)
|
||||
/// <summary>
|
||||
/// Get the nearest neighbour to the pivot point.
|
||||
/// Only returns 1 neighbour, even if equidistant points are found.
|
||||
/// </summary>
|
||||
/// <param name="pivot">The point for which to find the nearest neighbour.</param>
|
||||
/// <param name="distanceMeasure">The distance measure used, e.g. the Euclidian distance.</param>
|
||||
/// <param name="index">The nearest neighbour's index (returns -1 if not found).</param>
|
||||
/// <param name="distance">The distance between the pivot and the nearest neighbour (returns <see cref="double.NaN"/> if not found).</param>
|
||||
/// <returns>The nearest neighbour's point.</returns>
|
||||
public PdfPoint FindNearestNeighbour(PdfPoint pivot, Func<PdfPoint, PdfPoint, double> distanceMeasure, out int index, out double distance)
|
||||
{
|
||||
return FindNearestNeighbour(pivot, p => p, distanceMeasure, out index, out distance);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the k nearest neighbours to the pivot point.
|
||||
/// Might return more than k neighbours if points are equidistant.
|
||||
/// <para>Use <see cref="FindNearestNeighbour(PdfPoint, Func{PdfPoint, PdfPoint, double}, out int, out double)"/> if only looking for the (single) closest point.</para>
|
||||
/// </summary>
|
||||
/// <param name="pivot">The point for which to find the nearest neighbour.</param>
|
||||
/// <param name="k">The number of neighbours to return. Might return more than k neighbours if points are equidistant.</param>
|
||||
/// <param name="distanceMeasure">The distance measure used, e.g. the Euclidian distance.</param>
|
||||
/// <returns>Returns a list of tuples of the k nearest neighbours. Tuples are (element, index, distance).</returns>
|
||||
public IReadOnlyList<(PdfPoint, int, double)> FindNearestNeighbours(PdfPoint pivot, int k, Func<PdfPoint, PdfPoint, double> distanceMeasure)
|
||||
{
|
||||
return FindNearestNeighbours(pivot, k, p => p, distanceMeasure);
|
||||
}
|
||||
}
|
||||
|
||||
internal class KdTree<T>
|
||||
/// <summary>
|
||||
/// K-D tree data structure.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class KdTree<T>
|
||||
{
|
||||
private readonly KdTreeNode<T> Root;
|
||||
/// <summary>
|
||||
/// The root of the tree.
|
||||
/// </summary>
|
||||
public readonly KdTreeNode<T> Root;
|
||||
|
||||
/// <summary>
|
||||
/// Number of elements in the tree.
|
||||
/// </summary>
|
||||
public readonly int Count;
|
||||
|
||||
public KdTree(IReadOnlyList<T> candidates, Func<T, PdfPoint> candidatesPointFunc)
|
||||
/// <summary>
|
||||
/// K-D tree data structure.
|
||||
/// </summary>
|
||||
/// <param name="elements">The elements used to build the tree.</param>
|
||||
/// <param name="elementsPointFunc">The function that converts the candidate elements into a <see cref="PdfPoint"/>.</param>
|
||||
public KdTree(IReadOnlyList<T> elements, Func<T, PdfPoint> elementsPointFunc)
|
||||
{
|
||||
if (candidates == null || candidates.Count == 0)
|
||||
if (elements == null || elements.Count == 0)
|
||||
{
|
||||
throw new ArgumentException("KdTree(): candidates cannot be null or empty.", nameof(candidates));
|
||||
throw new ArgumentException("KdTree(): candidates cannot be null or empty.", nameof(elements));
|
||||
}
|
||||
|
||||
Count = candidates.Count;
|
||||
Root = BuildTree(Enumerable.Range(0, candidates.Count).Zip(candidates, (e, p) => (e, candidatesPointFunc(p), p)).ToArray(), 0);
|
||||
Count = elements.Count;
|
||||
Root = BuildTree(Enumerable.Range(0, elements.Count).Zip(elements, (e, p) => (e, elementsPointFunc(p), p)).ToArray(), 0);
|
||||
}
|
||||
|
||||
private KdTreeNode<T> BuildTree((int, PdfPoint, T)[] P, int depth)
|
||||
@@ -76,10 +116,11 @@
|
||||
#region NN
|
||||
/// <summary>
|
||||
/// Get the nearest neighbour to the pivot element.
|
||||
/// Only returns 1 neighbour, even if equidistant points are found.
|
||||
/// </summary>
|
||||
/// <param name="pivot">The element for which to find the nearest neighbour.</param>
|
||||
/// <param name="pivotPointFunc"></param>
|
||||
/// <param name="distanceMeasure"></param>
|
||||
/// <param name="pivotPointFunc">The function that converts the pivot element into a <see cref="PdfPoint"/>.</param>
|
||||
/// <param name="distanceMeasure">The distance measure used, e.g. the Euclidian distance.</param>
|
||||
/// <param name="index">The nearest neighbour's index (returns -1 if not found).</param>
|
||||
/// <param name="distance">The distance between the pivot and the nearest neighbour (returns <see cref="double.NaN"/> if not found).</param>
|
||||
/// <returns>The nearest neighbour's element.</returns>
|
||||
@@ -161,37 +202,22 @@
|
||||
#endregion
|
||||
|
||||
#region k-NN
|
||||
/*****************************************************************************
|
||||
* WARNING: k-nearest neighbours algo will need more checks and tests.
|
||||
*****************************************************************************/
|
||||
|
||||
/// <summary>
|
||||
/// Get the k nearest neighbours to the pivot element. If elements are equidistant, they are counted as one.
|
||||
/// Get the k nearest neighbours to the pivot element.
|
||||
/// Might return more than k neighbours if points are equidistant.
|
||||
/// <para>Use <see cref="FindNearestNeighbour(KdTreeNode{T}, T, Func{T, PdfPoint}, Func{PdfPoint, PdfPoint, double})"/> if only looking for the (single) closest point.</para>
|
||||
/// </summary>
|
||||
/// <param name="pivot">The element for which to find the k nearest neighbours.</param>
|
||||
/// <param name="k">The number of neighbours to return. If elements are equidistant, they are counted as one.</param>
|
||||
/// <param name="pivotPointFunc"></param>
|
||||
/// <param name="distanceMeasure"></param>
|
||||
/// <param name="k">The number of neighbours to return. Might return more than k neighbours if points are equidistant.</param>
|
||||
/// <param name="pivotPointFunc">The function that converts the pivot element into a <see cref="PdfPoint"/>.</param>
|
||||
/// <param name="distanceMeasure">The distance measure used, e.g. the Euclidian distance.</param>
|
||||
/// <returns>Returns a list of tuples of the k nearest neighbours. Tuples are (element, index, distance).</returns>
|
||||
public IReadOnlyList<(T, int, double)> FindNearestNeighbours(T pivot, int k, Func<T, PdfPoint> pivotPointFunc, Func<PdfPoint, PdfPoint, double> distanceMeasure)
|
||||
{
|
||||
if (k == 1)
|
||||
{
|
||||
// if only 1 neighbour required, use default to avoid creating KNearestNeighboursQueue
|
||||
var nn = FindNearestNeighbour(pivot, pivotPointFunc, distanceMeasure, out int index, out double distance);
|
||||
if (index == -1)
|
||||
{
|
||||
return EmptyArray<(T, int, double)>.Instance;
|
||||
}
|
||||
return new List<(T, int, double)>() { (nn, index, distance) };
|
||||
}
|
||||
else
|
||||
{
|
||||
var kdTreeNodes = new KNearestNeighboursQueue(k);
|
||||
FindNearestNeighbours(Root, pivot, k, pivotPointFunc, distanceMeasure, kdTreeNodes);
|
||||
return kdTreeNodes.SelectMany(n => n.Value.Select(e => (e.Element, e.Index, n.Key))).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
private static (KdTreeNode<T>, double) FindNearestNeighbours(KdTreeNode<T> node, T pivot, int k,
|
||||
Func<T, PdfPoint> pivotPointFunc, Func<PdfPoint, PdfPoint, double> distance, KNearestNeighboursQueue queue)
|
||||
@@ -324,33 +350,57 @@
|
||||
}
|
||||
#endregion
|
||||
|
||||
private class KdTreeLeaf<Q> : KdTreeNode<Q>
|
||||
/// <summary>
|
||||
/// K-D tree leaf.
|
||||
/// </summary>
|
||||
/// <typeparam name="Q"></typeparam>
|
||||
public class KdTreeLeaf<Q> : KdTreeNode<Q>
|
||||
{
|
||||
/// <summary>
|
||||
/// Return true if leaf.
|
||||
/// </summary>
|
||||
public override bool IsLeaf => true;
|
||||
|
||||
public KdTreeLeaf((int, PdfPoint, Q) point, int depth)
|
||||
internal KdTreeLeaf((int, PdfPoint, Q) point, int depth)
|
||||
: base(null, null, point, depth)
|
||||
{ }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
return "Leaf->" + Value.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private class KdTreeNode<Q>
|
||||
/// <summary>
|
||||
/// K-D tree node.
|
||||
/// </summary>
|
||||
/// <typeparam name="Q"></typeparam>
|
||||
public class KdTreeNode<Q>
|
||||
{
|
||||
/// <summary>
|
||||
/// Split value.
|
||||
/// Split value (X or Y axis).
|
||||
/// </summary>
|
||||
public double L => IsAxisCutX ? Value.X : Value.Y;
|
||||
|
||||
/// <summary>
|
||||
/// Split point.
|
||||
/// </summary>
|
||||
public PdfPoint Value { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Left child.
|
||||
/// </summary>
|
||||
public KdTreeNode<Q> LeftChild { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// Right child.
|
||||
/// </summary>
|
||||
public KdTreeNode<Q> RightChild { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// The node's element.
|
||||
/// </summary>
|
||||
public Q Element { get; }
|
||||
|
||||
/// <summary>
|
||||
@@ -358,13 +408,22 @@
|
||||
/// </summary>
|
||||
public bool IsAxisCutX { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The element's depth in the tree.
|
||||
/// </summary>
|
||||
public int Depth { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Return true if leaf.
|
||||
/// </summary>
|
||||
public virtual bool IsLeaf => false;
|
||||
|
||||
/// <summary>
|
||||
/// The index of the element in the original array.
|
||||
/// </summary>
|
||||
public int Index { get; }
|
||||
|
||||
public KdTreeNode(KdTreeNode<Q> leftChild, KdTreeNode<Q> rightChild, (int, PdfPoint, Q) point, int depth)
|
||||
internal KdTreeNode(KdTreeNode<Q> leftChild, KdTreeNode<Q> rightChild, (int, PdfPoint, Q) point, int depth)
|
||||
{
|
||||
LeftChild = leftChild;
|
||||
RightChild = rightChild;
|
||||
@@ -375,6 +434,9 @@
|
||||
Index = point.Item1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the leaves.
|
||||
/// </summary>
|
||||
public IEnumerable<KdTreeLeaf<Q>> GetLeaves()
|
||||
{
|
||||
var leaves = new List<KdTreeLeaf<Q>>();
|
||||
@@ -397,6 +459,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
return "Node->" + Value.ToString();
|
||||
|
@@ -15,7 +15,10 @@
|
||||
public static float Mode(this IEnumerable<float> array)
|
||||
{
|
||||
if (array == null || array.Count() == 0) return float.NaN;
|
||||
return array.GroupBy(v => v).OrderByDescending(g => g.Count()).First().Key;
|
||||
var sorted = array.GroupBy(v => v).Select(v => (v.Count(), v.Key)).OrderByDescending(g => g.Item1);
|
||||
var mode = sorted.First();
|
||||
if (mode.Item1 == sorted.ElementAt(1).Item1) return float.NaN;
|
||||
return mode.Key;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -25,7 +28,10 @@
|
||||
public static double Mode(this IEnumerable<double> array)
|
||||
{
|
||||
if (array == null || array.Count() == 0) return double.NaN;
|
||||
return array.GroupBy(v => v).OrderByDescending(g => g.Count()).First().Key;
|
||||
var sorted = array.GroupBy(v => v).Select(v => (v.Count(), v.Key)).OrderByDescending(g => g.Item1);
|
||||
var mode = sorted.First();
|
||||
if (mode.Item1 == sorted.ElementAt(1).Item1) return double.NaN;
|
||||
return mode.Key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
2160
src/UglyToad.PdfPig.Tests/Dla/DistancesTest.cs
Normal file
2160
src/UglyToad.PdfPig.Tests/Dla/DistancesTest.cs
Normal file
File diff suppressed because it is too large
Load Diff
6815
src/UglyToad.PdfPig.Tests/Dla/KdTreeTests.cs
Normal file
6815
src/UglyToad.PdfPig.Tests/Dla/KdTreeTests.cs
Normal file
File diff suppressed because it is too large
Load Diff
185
src/UglyToad.PdfPig.Tests/Dla/MathExtensionsTests.cs
Normal file
185
src/UglyToad.PdfPig.Tests/Dla/MathExtensionsTests.cs
Normal file
@@ -0,0 +1,185 @@
|
||||
namespace UglyToad.PdfPig.Tests.Dla
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using UglyToad.PdfPig.DocumentLayoutAnalysis;
|
||||
using Xunit;
|
||||
|
||||
public class MathExtensionsTests
|
||||
{
|
||||
private static readonly DoubleComparer DoubleComparer = new DoubleComparer(3);
|
||||
private static readonly DoubleComparer PreciseDoubleComparer = new DoubleComparer(6);
|
||||
private static readonly PointComparer PointComparer = new PointComparer(DoubleComparer);
|
||||
|
||||
#region data
|
||||
public static IEnumerable<object[]> ModeData => new[]
|
||||
{
|
||||
new object[]
|
||||
{
|
||||
new double[] { 5, 18, 9, 4, 7, 13, 16, 7, 13, 11, 14, 4, 1, 13, 17, 17, 8, 3, 19, 8, 5, 17, 13, 16, 16, 12, 4, 7, 1, 0, 14, 19, 13, 15, 18, 0, 18, 15, 16, 0, 3, 18, 12, 4, 12, 19, 7, 3, 4, 5, 18, 5, 14, 3, 3, 11, 7, 2, 9, 19, 14, 18, 5, 5, 8, 0, 4, 11, 9, 4, 12, 0, 4, 10, 5, 17, 12, 2, 0, 12, 17, 18, 17, 17, 3, 16, 18, 12, 9, 9, 16, 5, 10, 1, 7, 15, 4, 14, 3, 12, 19, 19, 17, 3, 2, 7, 12, 2, 19, 18, 3, 7, 5, 6, 6, 10, 6, 15, 8, 3, 0, 5, 17, 11, 7, 5, 9, 17, 18, 10, 18, 8, 7, 8, 18, 12, 8, 2, 17, 19, 8, 6, 19, 0, 4, 17, 2, 8, 12, 14, 13, 10, 15, 2, 3, 19, 16, 17, 9, 6, 9, 11, 1, 18, 10, 4, 19, 7, 13, 3, 9, 3, 14, 15, 9, 19, 10, 4, 15, 4, 18, 15, 0, 1, 13, 15, 5, 1, 19, 0, 7, 6, 0, 7, 7, 15, 1, 12, 3, 0, 17, 18, 5, 15, 7, 18, 3, 5, 8, 3, 19, 12, 19, 6, 8, 13, 6, 13, 9, 11, 11, 2, 8, 4, 4, 7, 0, 0, 15, 8, 9, 3, 5, 18, 19, 18, 11, 6, 7, 10, 14, 4, 15, 12, 9, 5, 2, 6, 15, 19, 1, 16, 4, 10, 10, 12, 6, 2, 12, 11, 15, 10, 12, 3, 15, 0, 7, 17, 7, 17, 7, 16, 11, 17, 6, 14, 4, 5, 17, 6, 3, 17, 9, 13, 3, 14, 16, 5, 15, 12, 0, 10, 10, 1, 7, 6, 19, 6, 2, 17, 3, 6, 3, 4, 1, 15, 2, 16, 6, 6, 9, 9, 9, 5, 9, 12, 17, 18, 12, 19, 16, 1, 0, 19, 8, 15, 1, 10, 5, 18, 4, 0, 8, 1, 8, 8, 18, 2, 1, 19, 1, 7, 12, 9, 18, 17, 2, 10, 7, 18, 8, 4, 6, 13, 17, 19, 9, 2, 1, 11, 19, 4, 15, 3, 7, 3, 6, 10, 15, 0, 12, 11, 2, 3, 14, 3, 8, 15, 8, 3, 5, 6, 19, 17, 7, 5, 6, 5, 18, 3, 17, 6, 1, 12, 0, 18, 10, 7, 2, 9 },
|
||||
3
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 12, 19, 18, 7, 2, 7, 13, 6, 15, 1, 15, 0, 4, 11, 8, 14, 3, 1, 17, 16, 13, 6, 15, 10, 6, 19, 14, 6, 3, 15, 15, 6, 14, 12, 15, 2, 1, 10, 1, 9, 5, 1, 16, 2, 11, 18, 5, 9, 18, 0, 5, 19, 10, 15, 18, 17, 3, 17, 8, 12, 7, 8, 4, 4, 3, 6, 9, 8, 6, 12, 10, 12, 14, 9, 10, 16, 12, 3, 18, 4, 12, 9, 1, 6, 6, 9, 13, 16, 15, 7, 18, 13, 9, 2, 13, 3, 6, 13, 6, 13, 6, 4, 10, 8, 2, 3, 12, 13, 2, 18, 15, 0, 17, 2, 3, 11, 4, 0, 10, 2, 15, 16, 0, 3, 2, 19, 6, 6, 18, 3, 8, 0, 0, 1, 6, 11, 15, 17, 16, 8, 15, 3, 19, 14, 19, 3, 16, 11, 0, 16, 19, 2, 4, 9, 15, 8, 12, 4, 3, 3, 19, 5, 2, 6, 4, 7, 16, 14, 18, 10, 13, 8, 18, 3, 11, 10, 3, 16, 5, 16, 11, 11, 13, 11, 14, 10, 19, 3, 4, 17, 0, 16, 10, 14, 8, 2, 12, 2, 7, 12, 18, 9, 9, 2, 9, 9, 15, 5, 11, 11, 4, 11, 2, 13, 1, 2, 7, 16, 16, 4, 12, 15, 5, 9, 15, 19, 18, 6, 6, 10, 16, 16, 4, 13, 12, 12, 6, 14, 16, 9, 6, 15, 9, 13, 17, 17, 3, 9, 14, 10, 18, 4, 6, 12, 4, 0, 11, 14, 18, 1, 8, 7, 19, 1, 7, 12, 13, 0, 16, 8, 6, 11, 1, 15, 19, 17, 2, 5, 7, 4, 18, 18, 14, 2, 3, 10, 18, 18, 11, 5, 6, 19, 4, 17, 12, 11, 2, 12, 7, 3, 18, 7, 14, 6, 14, 2, 5, 7, 0, 17, 10, 19, 5, 17, 16, 17, 17, 0, 7, 16, 7, 7, 13, 15, 12, 6, 12, 13, 6, 19, 11, 0, 7, 12, 18, 4, 10, 14, 15, 3, 5, 9, 12, 17, 6, 15, 19, 9, 10, 4, 19, 11, 3, 15, 16, 13, 7, 8, 7, 19, 4, 5, 6, 6, 2, 14, 17, 4, 1, 2, 13, 0, 3, 0, 15, 12, 1, 12, 15, 15, 18, 3, 8, 10, 10, 16, 6, 8, 12, 2, 0, 7, 3, 8, 9, 12, 1, 3, 14, 0 },
|
||||
6
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 17, 11, 7, 19, 17, 5, 17, 8, 10, 9, 7, 4, 4, 9, 19, 2, 3, 6, 7, 18, 2, 6, 19, 1, 15, 13, 5, 16, 6, 10, 0, 8, 7, 14, 1, 19, 0, 11, 5, 6, 3, 1, 16, 3, 11, 2, 7, 8, 17, 16, 5, 5, 4, 10, 17, 10, 14, 14, 18, 8, 16, 19, 3, 18, 3, 19, 7, 8, 8, 8, 18, 0, 10, 3, 4, 11, 5, 11, 2, 7, 16, 0, 0, 13, 2, 3, 7, 7, 11, 5, 10, 11, 9, 10, 12, 15, 16, 19, 0, 4, 0, 12, 1, 18, 17, 8, 8, 9, 8, 15, 17, 15, 6, 1, 17, 12, 4, 17, 12, 7, 8, 8, 8, 14, 17, 19, 19, 1, 15, 5, 11, 0, 4, 19, 16, 14, 0, 17, 11, 2, 1, 16, 0, 3, 18, 3, 2, 11, 12, 8, 13, 6, 8, 16, 4, 15, 1, 15, 6, 15, 19, 10, 14, 1, 0, 3, 3, 11, 19, 4, 2, 5, 10, 18, 15, 1, 14, 18, 19, 10, 14, 19, 9, 1, 0, 16, 10, 8, 19, 8, 17, 9, 3, 7, 0, 4, 13, 4, 3, 13, 13, 14, 8, 6, 4, 17, 9, 10, 0, 8, 14, 3, 18, 17, 9, 9, 14, 14, 8, 15, 12, 12, 9, 17, 13, 2, 12, 5, 12, 5, 5, 19, 1, 16, 8, 3, 1, 13, 15, 9, 8, 4, 15, 15, 15, 9, 18, 7, 4, 13, 15, 19, 3, 5, 17, 16, 19, 8, 15, 9, 4, 17, 4, 6, 0, 9, 5, 17, 12, 14, 16, 8, 9, 8, 12, 4, 18, 13, 1, 11, 4, 19, 11, 3, 8, 8, 15, 10, 14, 19, 18, 6, 10, 5, 1, 12, 16, 3, 6, 4, 15, 4, 3, 4, 12, 18, 16, 17, 17, 16, 13, 15, 9, 15, 13, 18, 8, 19, 11, 2, 3, 18, 2, 2, 18, 5, 16, 4, 9, 4, 18, 2, 8, 17, 0, 0, 15, 8, 4, 1, 9, 1, 12, 0, 16, 8, 5, 7, 10, 7, 5, 14, 9, 3, 7, 2, 16, 4, 14, 2, 17, 8, 10, 15, 11, 17, 4, 14, 13, 6, 14, 2, 15, 0, 14, 8, 6, 6, 1, 7, 10, 12, 1, 5, 1, 3, 7, 5, 4, 17, 9, 16, 10, 6, 4, 3, 10, 18, 8, 5 },
|
||||
8
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 5, 17, 12, 4, 5, 0, 9, 18, 4, 6, 11, 8, 13, 15, 7, 15, 12, 11, 14, 8, 11, 1, 3, 16, 9, 12, 13, 19, 8, 14, 2, 13, 17, 15, 0, 16, 4, 11, 11, 12, 3, 7, 17, 1, 18, 8, 14, 9, 8, 18, 10, 4, 0, 19, 19, 4, 0, 4, 7, 10, 8, 14, 7, 2, 17, 15, 18, 2, 10, 11, 7, 7, 16, 3, 5, 10, 15, 16, 15, 13, 0, 9, 9, 13, 9, 0, 5, 13, 18, 12, 4, 1, 17, 13, 0, 11, 9, 3, 12, 5, 4, 8, 5, 8, 10, 3, 17, 14, 17, 9, 10, 12, 19, 7, 17, 0, 13, 13, 17, 2, 12, 9, 13, 13, 3, 12, 12, 16, 15, 7, 12, 3, 8, 17, 6, 18, 1, 17, 6, 16, 4, 8, 16, 0, 2, 11, 4, 4, 5, 13, 3, 14, 17, 0, 15, 19, 13, 15, 7, 6, 9, 8, 6, 8, 0, 18, 7, 12, 1, 13, 14, 18, 13, 14, 13, 7, 19, 6, 1, 18, 17, 9, 19, 0, 6, 18, 12, 9, 5, 7, 17, 6, 7, 10, 15, 16, 10, 14, 7, 10, 9, 18, 14, 18, 18, 2, 18, 6, 5, 6, 12, 4, 0, 11, 13, 10, 15, 3, 19, 17, 12, 19, 12, 9, 15, 19, 13, 11, 14, 17, 8, 3, 11, 19, 10, 2, 3, 4, 7, 16, 13, 12, 2, 8, 7, 13, 19, 15, 5, 4, 12, 7, 13, 11, 6, 4, 8, 2, 16, 2, 6, 13, 2, 7, 5, 18, 17, 3, 8, 18, 13, 6, 4, 2, 12, 17, 8, 6, 12, 18, 15, 13, 4, 1, 3, 9, 11, 12, 1, 4, 8, 4, 9, 3, 17, 16, 6, 0, 19, 13, 8, 17, 3, 16, 13, 0, 16, 0, 15, 5, 8, 4, 8, 13, 1, 13, 4, 2, 16, 11, 2, 0, 0, 2, 5, 0, 7, 10, 19, 4, 13, 17, 18, 5, 0, 1, 14, 7, 13, 9, 12, 18, 1, 7, 13, 14, 4, 4, 7, 2, 19, 3, 8, 0, 11, 18, 4, 10, 14, 11, 16, 10, 17, 11, 8, 16, 1, 15, 0, 0, 14, 9, 19, 15, 11, 16, 1, 6, 8, 18, 0, 18, 3, 14, 13, 12, 9, 12, 11, 18, 18, 4, 3, 9, 7, 3, 5, 2, 18, 18 },
|
||||
13
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 6, 8, 15, 18, 5, 6, 8, 5, 16, 0, 7, 19, 0, 16, 13, 15, 19, 4, 16, 3, 11, 10, 8, 1, 10, 14, 18, 6, 17, 9, 3, 14, 16, 8, 7, 19, 11, 0, 3, 10, 10, 1, 5, 13, 8, 17, 14, 8, 10, 5, 15, 19, 17, 13, 14, 18, 13, 16, 16, 5, 14, 11, 15, 11, 0, 5, 3, 16, 5, 8, 18, 9, 7, 3, 18, 8, 6, 5, 1, 5, 16, 4, 5, 13, 15, 10, 14, 19, 15, 1, 12, 1, 16, 6, 18, 0, 11, 9, 4, 5, 17, 11, 18, 5, 13, 4, 0, 14, 13, 0, 1, 10, 14, 7, 15, 12, 1, 13, 11, 1, 9, 5, 18, 12, 12, 6, 1, 0, 7, 10, 2, 3, 5, 11, 8, 8, 17, 19, 2, 7, 12, 9, 0, 17, 17, 11, 19, 4, 10, 2, 16, 15, 6, 9, 0, 5, 5, 16, 16, 9, 2, 8, 5, 15, 13, 15, 0, 9, 4, 11, 18, 13, 18, 11, 7, 12, 1, 1, 5, 16, 7, 12, 6, 0, 2, 1, 14, 7, 13, 0, 18, 0, 16, 5, 14, 13, 2, 4, 4, 17, 11, 13, 5, 10, 19, 14, 10, 4, 9, 9, 4, 0, 3, 4, 0, 2, 16, 14, 2, 18, 17, 16, 13, 11, 6, 17, 8, 10, 6, 18, 9, 6, 0, 14, 0, 19, 3, 17, 18, 9, 19, 1, 4, 17, 2, 5, 11, 4, 2, 5, 2, 15, 11, 9, 14, 19, 5, 19, 4, 14, 11, 2, 13, 2, 19, 8, 8, 13, 15, 17, 9, 7, 4, 19, 11, 6, 10, 12, 5, 1, 10, 6, 7, 10, 6, 16, 14, 12, 14, 15, 6, 2, 19, 4, 1, 18, 11, 10, 7, 1, 1, 10, 3, 16, 13, 0, 12, 15, 4, 17, 17, 0, 9, 19, 15, 12, 12, 12, 18, 8, 0, 4, 7, 7, 1, 3, 2, 13, 19, 19, 16, 4, 10, 16, 2, 6, 9, 18, 2, 5, 1, 16, 1, 11, 16, 18, 13, 13, 6, 1, 18, 16, 2, 6, 3, 12, 5, 1, 7, 15, 14, 8, 15, 14, 15, 13, 6, 13, 15, 5, 1, 6, 7, 17, 13, 12, 6, 15, 4, 12, 13, 14, 8, 19, 13, 1, 2, 9, 0, 19, 13, 13, 0, 12, 8, 2, 7, 14, 9, 5 },
|
||||
5
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 7, 11, 3, 3, 12, 8, 9, 3, 14, 17, 8, 18, 17, 11, 10, 18, 17, 16, 3, 4, 12, 3, 6, 7, 17, 6, 3, 13, 2, 3, 6, 15, 7, 16, 2, 14, 10, 0, 5, 10, 17, 14, 12, 4, 9, 19, 16, 17, 1, 3, 8, 19, 0, 1, 16, 12, 17, 2, 1, 3, 1, 14, 18, 17, 6, 15, 9, 4, 1, 15, 18, 1, 7, 11, 7, 6, 13, 9, 5, 10, 8, 1, 5, 15, 10, 18, 6, 19, 9, 4, 19, 0, 10, 6, 14, 11, 17, 4, 1, 1, 13, 0, 0, 16, 14, 0, 9, 8, 10, 2, 14, 19, 2, 13, 11, 5, 14, 7, 3, 10, 1, 19, 18, 0, 12, 2, 11, 6, 5, 15, 8, 9, 5, 17, 0, 6, 4, 16, 8, 1, 3, 6, 7, 14, 4, 19, 3, 12, 15, 16, 3, 9, 4, 6, 17, 19, 11, 2, 4, 10, 7, 8, 2, 5, 15, 17, 2, 18, 19, 11, 1, 3, 19, 8, 16, 8, 14, 3, 6, 3, 0, 2, 7, 0, 5, 13, 15, 4, 14, 4, 16, 7, 3, 5, 6, 4, 16, 5, 14, 19, 5, 16, 9, 3, 7, 7, 11, 2, 19, 13, 18, 14, 12, 2, 17, 18, 12, 8, 16, 16, 6, 13, 0, 10, 3, 17, 6, 18, 0, 0, 16, 19, 3, 19, 14, 10, 18, 0, 13, 8, 16, 11, 9, 16, 1, 7, 15, 0, 7, 3, 3, 16, 5, 4, 17, 3, 14, 1, 6, 12, 2, 12, 3, 19, 13, 4, 12, 1, 1, 8, 11, 1, 16, 4, 9, 19, 12, 8, 19, 15, 0, 15, 0, 7, 6, 12, 3, 1, 10, 12, 10, 7, 15, 12, 4, 12, 11, 14, 4, 11, 11, 4, 1, 10, 8, 12, 7, 17, 15, 13, 10, 14, 4, 9, 2, 16, 11, 13, 4, 2, 3, 9, 10, 1, 15, 10, 1, 19, 13, 5, 14, 3, 8, 18, 19, 5, 7, 13, 4, 5, 9, 16, 12, 12, 5, 5, 2, 16, 1, 17, 18, 18, 19, 4, 10, 17, 2, 3, 18, 15, 16, 6, 14, 8, 1, 5, 18, 19, 15, 4, 7, 17, 14, 3, 14, 14, 18, 1, 17, 13, 16, 12, 12, 9, 3, 16, 19, 16, 7, 1, 6, 16, 5, 2, 9, 18, 18, 9, 6, 2 },
|
||||
3
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 13, 4, 19, 1, 12, 2, 9, 1, 17, 10, 16, 0, 5, 1, 19, 2, 3, 1, 7, 0, 19, 11, 18, 8, 18, 10, 9, 6, 18, 11, 15, 3, 11, 4, 19, 11, 8, 19, 1, 12, 8, 2, 19, 17, 15, 7, 6, 7, 7, 9, 3, 6, 15, 9, 19, 19, 6, 0, 7, 0, 19, 11, 18, 1, 3, 10, 12, 11, 19, 0, 16, 7, 7, 9, 19, 2, 9, 4, 2, 7, 12, 9, 8, 18, 18, 13, 13, 6, 5, 1, 19, 9, 0, 5, 10, 16, 18, 7, 0, 7, 5, 11, 3, 0, 14, 17, 4, 3, 1, 2, 19, 15, 0, 9, 13, 8, 4, 4, 19, 16, 1, 17, 15, 17, 9, 8, 1, 2, 18, 3, 18, 1, 9, 10, 3, 17, 18, 1, 9, 12, 8, 10, 11, 19, 7, 3, 9, 2, 6, 4, 10, 18, 17, 9, 10, 13, 12, 11, 14, 2, 7, 10, 15, 4, 2, 11, 5, 18, 3, 12, 0, 6, 18, 16, 19, 11, 17, 8, 11, 5, 3, 5, 5, 19, 2, 0, 17, 9, 15, 0, 6, 9, 13, 19, 10, 3, 2, 9, 13, 7, 12, 18, 18, 5, 17, 0, 7, 14, 17, 7, 8, 8, 8, 8, 12, 4, 6, 6, 1, 8, 6, 17, 14, 7, 7, 9, 5, 0, 10, 14, 4, 1, 8, 4, 9, 11, 5, 10, 2, 11, 10, 19, 11, 14, 15, 0, 7, 0, 18, 12, 14, 16, 18, 12, 14, 2, 8, 1, 2, 4, 0, 17, 2, 19, 16, 10, 7, 5, 10, 14, 18, 5, 1, 9, 14, 19, 6, 15, 13, 1, 19, 12, 0, 19, 5, 12, 15, 6, 19, 0, 0, 1, 15, 1, 10, 5, 10, 11, 5, 13, 17, 18, 11, 3, 11, 1, 1, 14, 11, 8, 12, 15, 11, 13, 9, 7, 0, 11, 4, 18, 2, 13, 7, 16, 2, 4, 5, 7, 10, 2, 18, 10, 3, 16, 17, 14, 16, 11, 12, 9, 18, 4, 8, 10, 4, 16, 19, 1, 4, 9, 0, 13, 5, 11, 5, 8, 11, 8, 6, 0, 9, 8, 5, 19, 5, 19, 12, 11, 7, 11, 13, 7, 3, 5, 15, 2, 5, 5, 4, 10, 9, 13, 13, 0, 14, 13, 15, 14, 14, 16, 5, 6, 19, 9, 16, 8, 10, 6, 10, 19 },
|
||||
19
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 7, 11, 8, 18, 11, 16, 16, 0, 12, 17, 4, 9, 1, 1, 1, 14, 15, 3, 8, 4, 2, 6, 14, 2, 1, 16, 5, 19, 11, 16, 16, 16, 12, 15, 3, 13, 17, 1, 9, 17, 2, 14, 1, 8, 18, 17, 13, 5, 7, 9, 17, 7, 17, 17, 0, 13, 2, 16, 5, 9, 14, 1, 2, 11, 14, 1, 4, 13, 19, 12, 12, 9, 3, 3, 3, 14, 18, 9, 7, 14, 13, 7, 10, 14, 1, 12, 16, 15, 14, 8, 1, 17, 16, 1, 1, 15, 1, 17, 6, 18, 6, 8, 6, 10, 0, 14, 1, 6, 7, 4, 4, 13, 19, 14, 3, 12, 3, 9, 12, 19, 1, 1, 10, 0, 1, 19, 16, 8, 12, 7, 9, 2, 7, 11, 12, 11, 2, 17, 14, 4, 9, 3, 13, 3, 1, 8, 14, 2, 9, 16, 9, 3, 11, 19, 6, 15, 8, 6, 19, 10, 14, 0, 13, 10, 5, 4, 9, 0, 5, 6, 11, 16, 6, 6, 19, 7, 9, 15, 7, 8, 5, 12, 19, 11, 13, 1, 0, 18, 2, 0, 1, 13, 13, 15, 18, 9, 19, 18, 4, 17, 9, 18, 14, 17, 11, 9, 4, 18, 3, 13, 13, 0, 15, 14, 9, 15, 17, 8, 9, 9, 7, 7, 0, 6, 14, 12, 10, 8, 17, 18, 9, 9, 2, 6, 13, 3, 9, 17, 4, 19, 7, 9, 4, 7, 10, 12, 16, 19, 18, 16, 10, 6, 17, 0, 11, 2, 12, 8, 2, 16, 5, 5, 10, 16, 0, 19, 2, 8, 17, 18, 8, 19, 19, 7, 1, 12, 7, 10, 1, 1, 15, 1, 17, 6, 16, 18, 13, 12, 19, 19, 16, 1, 6, 15, 13, 4, 5, 17, 10, 1, 16, 13, 19, 19, 8, 3, 10, 19, 14, 4, 14, 13, 12, 15, 16, 0, 17, 9, 13, 7, 15, 16, 16, 1, 3, 5, 3, 13, 4, 6, 0, 1, 9, 2, 4, 3, 1, 13, 12, 6, 18, 18, 16, 11, 19, 7, 10, 12, 18, 12, 19, 14, 15, 7, 15, 8, 1, 7, 2, 13, 6, 19, 19, 4, 17, 8, 13, 18, 15, 0, 8, 15, 3, 18, 0, 0, 5, 16, 7, 14, 16, 16, 0, 10, 5, 1, 6, 4, 18, 8, 14, 18, 9, 18, 1, 15, 11, 1, 1, 11 },
|
||||
1
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 17, 5, 5, 8, 5, 18, 19, 5, 9, 4, 10, 7, 4, 7, 1, 2, 3, 1, 0, 1, 6, 17, 3, 19, 14, 3, 12, 19, 6, 19, 9, 7, 15, 9, 15, 13, 13, 10, 1, 2, 19, 8, 8, 7, 5, 6, 2, 12, 19, 18, 10, 12, 10, 18, 0, 12, 11, 5, 6, 5, 15, 5, 11, 16, 14, 12, 18, 10, 5, 16, 10, 18, 2, 10, 1, 11, 11, 6, 9, 18, 2, 4, 14, 4, 17, 2, 18, 16, 9, 13, 19, 12, 1, 11, 2, 11, 18, 8, 17, 16, 4, 18, 2, 16, 4, 3, 14, 19, 13, 1, 1, 19, 4, 2, 3, 12, 7, 10, 4, 11, 0, 17, 4, 9, 8, 0, 5, 7, 12, 5, 10, 18, 15, 10, 12, 5, 2, 13, 4, 1, 17, 13, 3, 0, 16, 4, 10, 7, 18, 0, 19, 16, 13, 1, 11, 19, 15, 7, 11, 11, 17, 10, 7, 1, 15, 11, 8, 15, 9, 15, 10, 8, 13, 9, 17, 17, 15, 17, 12, 12, 0, 11, 8, 12, 15, 19, 17, 2, 0, 2, 10, 1, 6, 8, 6, 15, 7, 0, 8, 14, 2, 1, 14, 18, 4, 3, 17, 14, 2, 2, 14, 9, 4, 16, 11, 11, 4, 9, 17, 1, 19, 19, 1, 14, 19, 17, 19, 5, 9, 3, 4, 13, 13, 17, 18, 2, 5, 19, 1, 3, 7, 15, 11, 3, 11, 13, 9, 15, 14, 0, 15, 14, 11, 7, 1, 1, 12, 11, 14, 10, 19, 9, 18, 2, 4, 8, 16, 4, 18, 6, 5, 10, 0, 11, 12, 4, 4, 1, 4, 10, 12, 9, 12, 1, 7, 11, 8, 1, 11, 12, 4, 3, 7, 15, 5, 4, 14, 0, 4, 14, 18, 15, 10, 6, 13, 4, 16, 1, 11, 0, 3, 9, 2, 2, 13, 2, 1, 5, 3, 13, 10, 13, 14, 7, 4, 8, 8, 13, 4, 1, 5, 11, 13, 14, 18, 12, 7, 13, 16, 2, 1, 6, 5, 17, 17, 1, 7, 18, 2, 1, 5, 14, 2, 11, 10, 18, 16, 14, 7, 16, 13, 3, 2, 4, 19, 1, 2, 5, 9, 11, 4, 18, 18, 9, 12, 4, 7, 15, 17, 19, 19, 1, 5, 13, 6, 1, 6, 6, 0, 11, 9, 5, 13, 8, 9, 14, 9, 3, 3, 1 },
|
||||
1
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 15, 14, 16, 4, 11, 7, 2, 10, 3, 2, 8, 8, 16, 15, 4, 5, 5, 7, 16, 2, 2, 5, 17, 15, 13, 16, 18, 18, 3, 3, 10, 17, 1, 0, 10, 14, 8, 13, 18, 6, 4, 8, 11, 18, 0, 1, 3, 14, 9, 14, 11, 8, 18, 4, 13, 4, 9, 7, 0, 1, 12, 6, 19, 19, 10, 6, 8, 11, 18, 9, 0, 1, 10, 4, 13, 8, 5, 0, 10, 11, 12, 10, 1, 4, 18, 12, 5, 9, 15, 5, 16, 10, 1, 17, 1, 19, 13, 3, 13, 14, 12, 12, 9, 15, 10, 1, 1, 11, 0, 16, 8, 19, 2, 6, 5, 17, 1, 10, 19, 19, 12, 12, 6, 18, 10, 1, 16, 13, 14, 5, 4, 13, 4, 9, 8, 8, 0, 8, 3, 11, 8, 16, 2, 19, 7, 10, 18, 8, 15, 13, 10, 2, 11, 2, 10, 18, 11, 18, 15, 3, 19, 13, 2, 5, 17, 7, 1, 6, 11, 6, 11, 6, 1, 1, 9, 6, 8, 9, 3, 16, 1, 15, 16, 11, 5, 11, 17, 18, 6, 6, 14, 17, 1, 14, 13, 4, 13, 15, 14, 15, 19, 19, 13, 5, 13, 2, 14, 9, 14, 12, 3, 9, 1, 12, 9, 11, 14, 7, 18, 19, 16, 0, 15, 19, 10, 10, 5, 11, 1, 5, 4, 11, 2, 11, 10, 4, 15, 1, 1, 18, 10, 7, 16, 4, 8, 3, 9, 7, 13, 1, 16, 12, 16, 6, 7, 16, 19, 4, 5, 13, 17, 8, 7, 17, 6, 14, 19, 9, 16, 0, 7, 14, 16, 6, 4, 16, 11, 3, 11, 2, 9, 9, 1, 7, 7, 6, 8, 10, 1, 15, 3, 10, 14, 17, 7, 13, 2, 4, 14, 11, 10, 12, 10, 5, 19, 4, 14, 11, 9, 17, 3, 3, 4, 3, 19, 5, 17, 3, 9, 7, 5, 12, 8, 19, 18, 17, 7, 10, 0, 11, 17, 15, 9, 14, 18, 18, 10, 11, 9, 5, 1, 13, 5, 13, 3, 15, 4, 7, 12, 14, 19, 4, 19, 17, 15, 15, 7, 0, 11, 17, 5, 1, 13, 10, 12, 18, 18, 6, 1, 15, 19, 8, 17, 11, 12, 18, 9, 14, 19, 13, 1, 13, 5, 1, 3, 6, 17, 15, 1, 18, 15, 6, 15, 7, 6, 10, 13, 12, 11, 10 },
|
||||
1
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 16, 12, 4, 6, 4, 16, 5, 4, 1, 11, 10, 2, 19, 2, 14, 5, 16, 1, 18, 1, 1, 2, 18, 0, 1, 5, 7, 17, 2, 13, 17, 18, 12, 7, 15, 18, 12, 14, 3, 15, 13, 7, 7, 16, 12, 4, 18, 14, 0, 8, 1, 16, 5, 6, 5, 7, 2, 16, 19, 16, 14, 2, 0, 12, 6, 3, 8, 10, 9, 18, 18, 14, 12, 14, 2, 15, 8, 3, 8, 9, 15, 18, 13, 17, 11, 0, 11, 6, 7, 10, 4, 16, 8, 17, 12, 7, 13, 3, 14, 7, 7, 2, 2, 11, 7, 17, 17, 12, 19, 11, 4, 10, 10, 10, 9, 6, 19, 1, 7, 0, 18, 13, 13, 8, 0, 9, 0, 17, 0, 3, 12, 10, 9, 13, 3, 19, 11, 18, 17, 4, 18, 0, 12, 12, 14, 13, 8, 6, 6, 16, 12, 7, 12, 8, 16, 18, 2, 14, 16, 9, 7, 3, 13, 6, 4, 0, 4, 3, 1, 12, 16, 6, 0, 0, 5, 17, 3, 17, 4, 16, 2, 2, 10, 4, 2, 8, 8, 12, 0, 5, 18, 0, 6, 3, 14, 2, 15, 11, 2, 18, 14, 12, 7, 13, 1, 17, 0, 9, 17, 16, 3, 5, 2, 5, 8, 5, 13, 13, 2, 12, 5, 6, 9, 18, 4, 16, 15, 4, 11, 7, 11, 4, 16, 10, 16, 0, 13, 4, 1, 13, 14, 8, 0, 6, 15, 10, 5, 0, 2, 4, 18, 8, 8, 4, 18, 2, 3, 17, 10, 5, 18, 2, 19, 9, 8, 10, 10, 6, 19, 14, 1, 1, 1, 15, 13, 2, 12, 15, 14, 0, 16, 16, 0, 16, 14, 10, 14, 15, 7, 17, 11, 15, 12, 12, 14, 6, 6, 11, 15, 16, 12, 18, 7, 19, 7, 14, 1, 13, 18, 1, 17, 7, 13, 17, 3, 10, 9, 19, 16, 13, 0, 5, 6, 3, 6, 12, 17, 19, 11, 5, 16, 15, 1, 7, 13, 11, 16, 2, 19, 12, 6, 6, 19, 15, 9, 9, 10, 12, 4, 15, 7, 3, 6, 12, 11, 11, 16, 3, 3, 14, 10, 17, 16, 10, 9, 13, 12, 17, 9, 9, 16, 4, 12, 6, 5, 16, 0, 15, 16, 9, 4, 6, 15, 1, 3, 15, 13, 5, 19, 11, 7, 17, 13, 6, 18, 14, 8, 4, 6, 4 },
|
||||
16
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 9, 1, 16, 19, 18, 3, 11, 9, 15, 18, 8, 8, 8, 12, 10, 6, 3, 5, 3, 18, 16, 3, 8, 6, 7, 16, 10, 10, 1, 15, 9, 17, 19, 3, 19, 7, 0, 9, 18, 6, 6, 14, 2, 17, 15, 12, 14, 17, 0, 13, 13, 8, 9, 15, 18, 0, 13, 6, 10, 13, 10, 3, 13, 7, 3, 9, 3, 6, 14, 2, 18, 2, 12, 15, 5, 1, 9, 16, 1, 8, 18, 2, 13, 8, 12, 18, 14, 15, 0, 4, 2, 4, 2, 6, 13, 12, 18, 7, 12, 6, 14, 3, 6, 12, 10, 8, 1, 12, 1, 15, 9, 19, 12, 7, 12, 9, 9, 16, 19, 2, 4, 13, 9, 12, 16, 9, 19, 1, 13, 16, 5, 7, 9, 14, 5, 4, 14, 3, 3, 13, 17, 16, 18, 5, 9, 19, 3, 17, 19, 4, 2, 4, 7, 0, 2, 17, 6, 9, 16, 17, 18, 19, 18, 6, 14, 2, 19, 19, 17, 2, 12, 9, 1, 16, 13, 1, 1, 18, 19, 10, 13, 8, 0, 13, 14, 5, 17, 7, 6, 18, 9, 9, 4, 1, 5, 10, 14, 8, 15, 18, 5, 15, 17, 11, 14, 3, 14, 16, 14, 16, 1, 8, 5, 0, 12, 15, 17, 5, 5, 18, 4, 13, 8, 18, 1, 15, 12, 14, 12, 16, 11, 16, 8, 7, 16, 13, 16, 9, 4, 16, 12, 2, 4, 12, 13, 9, 15, 14, 13, 11, 16, 14, 13, 7, 16, 13, 4, 4, 4, 10, 14, 7, 11, 5, 4, 14, 7, 9, 0, 12, 15, 15, 8, 14, 1, 5, 19, 19, 18, 16, 6, 18, 13, 3, 4, 10, 10, 1, 11, 8, 6, 1, 5, 8, 6, 11, 8, 18, 14, 6, 1, 15, 18, 5, 15, 8, 15, 8, 11, 14, 18, 11, 9, 13, 16, 16, 9, 11, 1, 19, 4, 15, 6, 14, 4, 11, 8, 0, 10, 12, 7, 12, 19, 15, 17, 15, 2, 5, 7, 6, 14, 4, 9, 5, 11, 13, 5, 10, 5, 3, 11, 5, 10, 0, 12, 19, 10, 4, 11, 1, 5, 2, 15, 15, 13, 4, 9, 16, 12, 13, 17, 18, 3, 11, 10, 2, 19, 18, 0, 16, 19, 12, 11, 17, 15, 1, 16, 8, 3, 16, 12, 17, 11, 2, 16, 10, 16, 12, 7, 13 },
|
||||
16
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 4, 13, 13, 11, 5, 9, 4, 4, 17, 19, 7, 2, 8, 5, 17, 1, 11, 10, 18, 19, 7, 19, 16, 13, 19, 12, 10, 15, 8, 5, 19, 11, 12, 13, 5, 1, 7, 18, 10, 15, 10, 5, 7, 7, 1, 10, 13, 1, 15, 6, 8, 16, 17, 0, 3, 0, 15, 14, 6, 12, 6, 0, 3, 9, 5, 1, 15, 12, 11, 16, 3, 17, 1, 2, 8, 2, 8, 12, 14, 15, 16, 13, 0, 1, 7, 9, 0, 3, 6, 3, 2, 6, 1, 16, 1, 10, 8, 2, 2, 9, 15, 9, 13, 17, 15, 13, 18, 2, 13, 15, 16, 6, 18, 2, 12, 1, 16, 15, 2, 12, 6, 6, 18, 10, 14, 0, 18, 12, 10, 17, 0, 6, 5, 14, 4, 4, 16, 16, 18, 9, 1, 7, 18, 0, 15, 7, 10, 3, 8, 19, 0, 7, 4, 3, 3, 6, 19, 4, 8, 16, 4, 0, 1, 16, 5, 14, 17, 10, 9, 17, 15, 7, 16, 5, 16, 15, 12, 3, 2, 7, 4, 13, 6, 0, 17, 16, 3, 12, 8, 10, 7, 0, 6, 17, 10, 9, 16, 2, 1, 8, 19, 6, 17, 0, 5, 3, 17, 4, 7, 14, 11, 16, 9, 2, 5, 10, 9, 0, 16, 10, 16, 0, 6, 17, 7, 13, 14, 9, 10, 16, 4, 18, 6, 13, 8, 9, 12, 13, 5, 13, 6, 7, 14, 5, 19, 9, 11, 14, 8, 10, 6, 19, 7, 9, 7, 10, 15, 14, 10, 2, 18, 12, 14, 3, 7, 8, 0, 8, 10, 11, 12, 3, 18, 6, 15, 14, 13, 14, 17, 11, 10, 14, 19, 4, 2, 18, 9, 7, 1, 14, 15, 6, 5, 15, 2, 12, 17, 19, 12, 16, 3, 6, 14, 15, 5, 13, 4, 6, 0, 12, 12, 5, 7, 19, 3, 10, 5, 7, 7, 8, 2, 10, 19, 18, 13, 1, 18, 15, 5, 9, 3, 3, 4, 0, 11, 16, 13, 16, 5, 18, 2, 7, 2, 1, 11, 17, 16, 17, 15, 8, 12, 19, 12, 10, 11, 14, 9, 0, 6, 9, 1, 0, 7, 3, 3, 2, 7, 12, 9, 15, 13, 7, 7, 16, 4, 4, 12, 8, 6, 5, 5, 11, 11, 10, 5, 16, 17, 12, 2, 1, 15, 6, 2, 13, 15, 12, 14, 16, 17, 6 },
|
||||
7
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 15, 16, 7, 3, 12, 12, 3, 11, 10, 12, 3, 5, 4, 7, 1, 4, 11, 8, 9, 14, 2, 1, 2, 7, 9, 0, 17, 10, 0, 7, 8, 16, 9, 2, 11, 16, 11, 11, 15, 14, 9, 17, 5, 2, 5, 8, 13, 12, 4, 3, 9, 7, 12, 10, 1, 16, 10, 19, 13, 9, 4, 18, 9, 2, 9, 10, 16, 9, 1, 10, 14, 16, 7, 4, 10, 3, 4, 14, 19, 16, 4, 8, 7, 11, 1, 17, 19, 7, 9, 12, 5, 5, 2, 11, 4, 10, 0, 3, 11, 12, 11, 9, 16, 10, 8, 3, 7, 8, 10, 6, 7, 17, 9, 17, 5, 16, 15, 12, 8, 8, 3, 15, 1, 0, 19, 18, 13, 18, 16, 0, 1, 6, 3, 12, 5, 6, 5, 12, 10, 13, 2, 10, 4, 18, 16, 1, 12, 8, 14, 13, 18, 3, 2, 5, 7, 3, 15, 14, 3, 11, 9, 2, 0, 15, 12, 10, 12, 6, 7, 11, 4, 2, 11, 1, 18, 16, 18, 12, 15, 5, 9, 0, 17, 3, 17, 18, 15, 0, 2, 14, 18, 0, 3, 4, 14, 15, 5, 14, 7, 10, 11, 10, 0, 6, 4, 18, 17, 16, 11, 18, 7, 19, 11, 19, 1, 19, 17, 0, 19, 9, 4, 8, 4, 1, 10, 14, 13, 7, 17, 5, 10, 9, 15, 15, 15, 3, 12, 9, 19, 18, 7, 7, 3, 18, 17, 10, 12, 9, 18, 16, 19, 8, 17, 4, 5, 16, 6, 18, 5, 5, 11, 3, 19, 19, 2, 6, 5, 7, 12, 5, 15, 16, 14, 9, 7, 5, 13, 9, 8, 10, 15, 5, 5, 19, 19, 16, 10, 17, 1, 8, 12, 2, 14, 2, 6, 19, 1, 6, 12, 4, 5, 5, 8, 9, 14, 11, 17, 1, 3, 16, 9, 8, 13, 4, 3, 11, 17, 2, 6, 8, 13, 9, 5, 7, 13, 13, 4, 16, 18, 2, 5, 8, 14, 4, 11, 14, 11, 19, 4, 8, 0, 10, 17, 2, 5, 5, 18, 3, 14, 19, 16, 2, 6, 18, 1, 2, 0, 8, 5, 2, 18, 1, 4, 7, 6, 6, 1, 14, 1, 2, 19, 1, 18, 10, 15, 1, 17, 0, 17, 14, 5, 14, 16, 16, 12, 10, 7, 16, 1, 19, 6, 16, 3, 6, 1, 13, 13, 12, 7, 10 },
|
||||
5
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 15, 13, 18, 7, 10, 11, 7, 19, 3, 0, 10, 15, 4, 12, 18, 16, 6, 15, 16, 3, 13, 4, 13, 14, 17, 3, 18, 8, 19, 15, 12, 18, 0, 12, 6, 17, 4, 15, 1, 7, 11, 3, 12, 8, 11, 3, 3, 8, 11, 16, 5, 13, 16, 8, 0, 14, 15, 0, 17, 9, 5, 9, 1, 9, 10, 14, 16, 1, 1, 15, 2, 11, 19, 17, 4, 10, 9, 13, 1, 13, 9, 2, 14, 19, 6, 13, 8, 19, 4, 0, 19, 16, 7, 8, 14, 8, 13, 13, 16, 12, 11, 15, 1, 7, 18, 14, 8, 15, 10, 3, 6, 19, 8, 12, 19, 7, 7, 0, 15, 13, 5, 14, 18, 9, 17, 16, 10, 3, 1, 11, 7, 17, 0, 1, 11, 3, 7, 6, 14, 17, 14, 18, 16, 4, 13, 13, 5, 19, 13, 13, 4, 11, 8, 13, 5, 5, 18, 14, 17, 5, 8, 12, 18, 4, 11, 2, 11, 2, 16, 10, 12, 15, 15, 2, 16, 0, 6, 9, 5, 9, 13, 2, 10, 15, 14, 15, 1, 10, 9, 9, 3, 18, 8, 8, 9, 19, 7, 9, 13, 15, 3, 12, 14, 14, 10, 16, 4, 11, 12, 13, 8, 15, 2, 6, 5, 18, 12, 19, 11, 9, 4, 1, 5, 8, 1, 18, 10, 4, 2, 5, 19, 3, 9, 17, 16, 9, 18, 2, 15, 15, 7, 6, 18, 1, 6, 8, 4, 5, 13, 0, 2, 10, 12, 10, 2, 6, 17, 8, 16, 5, 11, 14, 12, 4, 8, 12, 5, 18, 8, 2, 10, 13, 1, 9, 7, 9, 7, 18, 12, 17, 13, 6, 0, 1, 1, 13, 4, 5, 15, 4, 3, 17, 16, 11, 10, 14, 3, 12, 13, 13, 12, 13, 10, 12, 14, 15, 3, 0, 13, 14, 2, 14, 5, 17, 19, 11, 2, 19, 19, 14, 10, 16, 17, 16, 13, 9, 10, 5, 0, 0, 16, 1, 5, 0, 13, 19, 6, 8, 0, 6, 6, 2, 2, 18, 19, 2, 18, 6, 4, 14, 13, 15, 15, 10, 6, 14, 3, 7, 8, 14, 14, 3, 11, 4, 7, 17, 2, 18, 10, 15, 3, 19, 18, 5, 8, 10, 10, 1, 4, 7, 18, 10, 8, 18, 4, 15, 3, 3, 15, 17, 8, 18, 19, 16, 5, 19, 16, 19, 5, 16 },
|
||||
13
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 13, 1, 7, 17, 6, 17, 6, 17, 14, 15, 16, 2, 10, 0, 7, 9, 13, 9, 14, 11, 3, 17, 14, 11, 1, 8, 0, 11, 11, 8, 10, 15, 3, 12, 13, 9, 4, 13, 0, 19, 8, 19, 7, 6, 0, 9, 12, 9, 10, 1, 17, 6, 11, 4, 11, 14, 10, 5, 19, 16, 10, 12, 10, 17, 15, 3, 10, 13, 10, 2, 6, 12, 6, 7, 1, 2, 0, 3, 12, 8, 6, 18, 1, 17, 18, 4, 13, 5, 3, 13, 19, 14, 9, 3, 15, 7, 11, 1, 4, 5, 17, 4, 5, 3, 4, 1, 12, 4, 6, 18, 17, 15, 5, 9, 9, 10, 14, 18, 15, 12, 15, 12, 10, 2, 5, 4, 1, 14, 10, 5, 6, 5, 0, 10, 12, 1, 1, 11, 9, 7, 8, 10, 16, 6, 17, 1, 6, 9, 10, 6, 15, 18, 4, 8, 12, 18, 14, 18, 4, 8, 14, 1, 11, 5, 9, 15, 4, 19, 18, 16, 15, 6, 12, 15, 6, 15, 12, 17, 12, 4, 10, 0, 14, 17, 11, 5, 13, 13, 13, 16, 19, 7, 1, 7, 2, 17, 15, 3, 14, 12, 14, 15, 1, 8, 9, 11, 9, 16, 16, 19, 3, 10, 12, 9, 5, 13, 17, 4, 18, 5, 18, 8, 18, 11, 3, 0, 11, 14, 10, 7, 4, 1, 19, 7, 6, 18, 19, 4, 3, 15, 16, 2, 1, 9, 4, 4, 0, 14, 18, 16, 15, 4, 4, 15, 7, 12, 3, 5, 17, 6, 0, 14, 9, 8, 17, 10, 15, 11, 2, 19, 12, 13, 11, 17, 4, 5, 6, 12, 18, 5, 6, 3, 17, 12, 0, 9, 2, 5, 12, 2, 14, 13, 3, 10, 5, 5, 11, 0, 10, 4, 17, 16, 7, 16, 14, 6, 3, 1, 14, 10, 9, 16, 9, 18, 15, 10, 4, 10, 18, 8, 9, 10, 3, 3, 19, 7, 13, 5, 4, 17, 11, 5, 3, 12, 18, 10, 7, 6, 5, 10, 15, 6, 15, 13, 19, 19, 3, 18, 11, 10, 3, 18, 19, 2, 14, 2, 6, 18, 2, 15, 15, 13, 12, 17, 15, 6, 5, 0, 8, 15, 17, 15, 3, 5, 15, 0, 2, 7, 12, 8, 8, 15, 0, 2, 3, 11, 2, 16, 8, 18, 0, 5, 6, 8, 5, 17, 19, 0, 5, 9 },
|
||||
15
|
||||
},
|
||||
};
|
||||
|
||||
public static IEnumerable<object[]> ModeDataNaN => new[]
|
||||
{
|
||||
new object[]
|
||||
{
|
||||
new double[] { 2, 16, 7, 17, 14, 19, 18, 6, 17, 15, 5, 8, 17, 5, 15, 13, 2, 16, 15, 16, 15, 3, 14, 9, 13, 14, 0, 19, 19, 7, 15, 3, 8, 6, 2, 11, 3, 19, 5, 15, 18, 9, 15, 16, 5, 1, 5, 17, 7, 11, 16, 1, 16, 18, 1, 2, 5, 3, 16, 4, 15, 16, 0, 12, 7, 8, 2, 3, 9, 2, 3, 19, 13, 3, 12, 14, 5, 16, 14, 7, 13, 18, 6, 0, 9, 1, 4, 14, 1, 2, 3, 7, 7, 17, 7, 0, 6, 19, 1, 18, 6, 7, 0, 5, 14, 5, 5, 8, 0, 2, 3, 4, 3, 16, 2, 4, 4, 17, 12, 16, 15, 9, 19, 12, 13, 9, 8, 14, 9, 8, 1, 1, 7, 10, 2, 4, 0, 1, 11, 1, 2, 3, 15, 9, 9, 1, 6, 16, 2, 9, 10, 11, 7, 8, 14, 14, 19, 9, 8, 4, 7, 4, 5, 2, 1, 1, 16, 10, 4, 9, 8, 0, 6, 4, 14, 12, 4, 7, 4, 9, 12, 4, 15, 11, 11, 5, 18, 10, 15, 19, 0, 10, 10, 4, 1, 15, 15, 5, 18, 2, 4, 6, 16, 14, 6, 17, 13, 7, 11, 3, 0, 15, 12, 13, 16, 17, 18, 10, 2, 18, 5, 15, 1, 10, 17, 1, 4, 15, 17, 10, 11, 17, 1, 12, 4, 18, 19, 4, 3, 8, 10, 4, 2, 15, 15, 6, 8, 19, 0, 17, 11, 6, 19, 4, 11, 17, 6, 2, 13, 4, 9, 9, 8, 13, 19, 6, 1, 4, 0, 18, 2, 0, 19, 19, 3, 4, 10, 0, 8, 12, 7, 10, 7, 11, 19, 18, 11, 16, 3, 18, 15, 16, 1, 10, 18, 14, 12, 19, 1, 19, 8, 7, 8, 17, 0, 19, 6, 9, 9, 9, 9, 3, 2, 1, 15, 15, 8, 13, 5, 13, 1, 1, 11, 16, 6, 5, 12, 12, 11, 10, 1, 4, 18, 14, 2, 18, 3, 0, 9, 2, 8, 18, 10, 5, 14, 8, 3, 4, 4, 6, 2, 7, 8, 16, 14, 1, 18, 13, 0, 2, 8, 7, 2, 10, 11, 13, 18, 17, 17, 5, 7, 10, 1, 17, 9, 15, 7, 14, 18, 17, 6, 11, 4, 7, 8, 0, 5, 12, 17, 15, 6, 0, 3, 2, 1, 3, 6, 9, 0, 8 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 14, 12, 18, 19, 6, 13, 12, 2, 16, 19, 11, 11, 14, 9, 3, 11, 1, 18, 11, 18, 5, 5, 15, 2, 6, 12, 9, 4, 3, 5, 1, 9, 14, 17, 6, 7, 13, 2, 2, 4, 4, 3, 2, 18, 16, 2, 4, 8, 1, 11, 16, 3, 10, 8, 18, 1, 9, 1, 17, 6, 16, 10, 10, 10, 14, 3, 3, 2, 13, 1, 4, 1, 0, 1, 13, 3, 16, 6, 18, 12, 9, 14, 8, 0, 8, 3, 18, 4, 19, 10, 10, 6, 6, 0, 17, 16, 2, 5, 16, 8, 0, 12, 5, 1, 14, 16, 10, 1, 18, 7, 4, 9, 3, 0, 17, 15, 7, 14, 10, 0, 13, 16, 5, 9, 10, 10, 8, 15, 10, 9, 2, 4, 12, 5, 6, 13, 4, 18, 16, 17, 12, 9, 17, 4, 6, 16, 18, 15, 5, 16, 7, 6, 5, 10, 12, 6, 7, 15, 3, 7, 0, 15, 19, 10, 15, 3, 12, 6, 11, 16, 2, 6, 3, 2, 0, 14, 11, 18, 1, 1, 9, 8, 2, 4, 18, 15, 17, 13, 4, 0, 7, 15, 0, 18, 7, 6, 1, 0, 19, 18, 1, 8, 13, 0, 0, 17, 8, 4, 1, 15, 19, 8, 11, 8, 18, 2, 16, 9, 15, 17, 0, 15, 3, 18, 14, 8, 15, 19, 7, 6, 2, 14, 6, 6, 9, 17, 10, 1, 1, 3, 17, 6, 1, 19, 8, 0, 9, 7, 4, 19, 11, 9, 1, 0, 11, 14, 10, 3, 19, 15, 8, 15, 8, 1, 3, 8, 18, 14, 0, 8, 3, 5, 16, 4, 6, 3, 4, 7, 14, 9, 8, 0, 2, 4, 7, 4, 4, 4, 12, 18, 3, 11, 10, 12, 10, 13, 19, 16, 17, 18, 3, 11, 18, 13, 11, 0, 4, 10, 2, 1, 3, 0, 1, 18, 18, 16, 4, 15, 16, 1, 0, 11, 9, 5, 19, 16, 0, 17, 16, 19, 6, 12, 13, 12, 17, 2, 2, 4, 5, 11, 13, 17, 19, 2, 15, 14, 1, 9, 4, 18, 4, 17, 12, 9, 9, 10, 17, 15, 9, 8, 14, 9, 3, 9, 15, 17, 6, 8, 11, 7, 7, 17, 2, 3, 18, 10, 3, 14, 8, 10, 1, 16, 12, 19, 7, 14, 12, 6, 10, 3, 16, 1, 4, 2, 17, 18, 12, 9, 12, 5 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 10, 9, 7, 8, 18, 5, 17, 18, 11, 16, 19, 4, 7, 2, 12, 18, 13, 13, 7, 1, 11, 6, 16, 17, 6, 3, 3, 19, 1, 0, 16, 10, 0, 9, 13, 8, 5, 1, 16, 6, 11, 18, 12, 11, 7, 4, 11, 14, 11, 9, 14, 16, 9, 3, 0, 10, 9, 2, 9, 10, 16, 10, 8, 6, 13, 17, 9, 1, 17, 4, 12, 5, 7, 11, 15, 18, 8, 7, 12, 4, 16, 17, 3, 9, 19, 18, 7, 14, 3, 7, 13, 16, 5, 14, 14, 10, 15, 7, 1, 8, 15, 15, 18, 17, 14, 12, 16, 2, 5, 19, 0, 10, 11, 16, 1, 4, 18, 3, 8, 19, 12, 1, 0, 12, 7, 19, 14, 13, 2, 12, 15, 8, 14, 3, 8, 18, 1, 9, 15, 3, 0, 11, 2, 18, 3, 3, 9, 2, 0, 5, 14, 1, 0, 17, 8, 6, 8, 0, 9, 13, 17, 6, 7, 17, 4, 18, 3, 5, 6, 16, 5, 3, 3, 8, 19, 2, 13, 4, 2, 17, 18, 16, 6, 13, 6, 9, 18, 7, 4, 14, 19, 6, 17, 10, 3, 17, 17, 13, 15, 14, 12, 19, 5, 19, 15, 9, 9, 7, 19, 1, 9, 16, 1, 10, 12, 13, 12, 2, 6, 12, 10, 1, 3, 13, 4, 0, 17, 5, 12, 1, 18, 3, 18, 10, 4, 10, 8, 13, 11, 14, 13, 12, 16, 12, 6, 10, 19, 11, 19, 18, 0, 18, 0, 11, 12, 18, 6, 9, 18, 13, 13, 11, 12, 19, 10, 14, 12, 4, 8, 8, 14, 12, 1, 19, 1, 15, 10, 8, 17, 4, 5, 1, 13, 2, 11, 12, 8, 10, 18, 8, 19, 10, 16, 1, 12, 2, 10, 4, 4, 4, 11, 14, 16, 3, 16, 5, 6, 6, 10, 4, 6, 18, 9, 16, 6, 0, 2, 7, 2, 5, 19, 13, 2, 12, 11, 16, 9, 10, 17, 9, 15, 7, 18, 1, 9, 15, 9, 13, 17, 4, 16, 15, 9, 0, 1, 2, 18, 11, 3, 3, 17, 12, 3, 8, 18, 11, 7, 9, 11, 6, 5, 11, 2, 11, 19, 19, 9, 17, 3, 17, 7, 6, 6, 19, 1, 1, 12, 5, 18, 12, 17, 18, 11, 16, 13, 12, 8, 8, 4, 6, 18, 3, 5, 9, 17, 1, 14, 12, 9, 13 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 4, 16, 9, 19, 2, 11, 4, 7, 0, 11, 4, 0, 11, 8, 16, 8, 8, 5, 13, 8, 6, 19, 14, 19, 0, 1, 17, 19, 2, 14, 17, 9, 0, 5, 9, 9, 1, 9, 15, 8, 10, 2, 3, 9, 9, 17, 4, 5, 0, 6, 6, 1, 6, 8, 12, 12, 16, 18, 8, 12, 17, 13, 11, 11, 11, 3, 4, 1, 11, 17, 11, 14, 1, 11, 14, 15, 15, 13, 15, 4, 12, 11, 0, 14, 13, 17, 1, 18, 16, 17, 6, 17, 13, 7, 7, 11, 1, 19, 1, 4, 11, 13, 17, 14, 8, 8, 4, 9, 1, 11, 2, 3, 9, 2, 5, 16, 3, 8, 4, 4, 7, 6, 7, 7, 13, 4, 8, 12, 13, 12, 3, 1, 1, 4, 19, 4, 12, 16, 7, 15, 7, 0, 3, 4, 7, 19, 11, 2, 10, 19, 12, 7, 17, 5, 6, 1, 12, 14, 1, 13, 7, 12, 18, 9, 11, 16, 18, 8, 8, 7, 19, 4, 2, 12, 11, 11, 10, 0, 0, 6, 12, 10, 19, 14, 16, 6, 1, 8, 18, 5, 5, 0, 3, 10, 13, 9, 1, 14, 6, 13, 1, 14, 7, 3, 5, 15, 13, 5, 19, 14, 14, 0, 11, 13, 11, 2, 0, 11, 9, 9, 12, 3, 5, 14, 18, 2, 13, 15, 17, 19, 7, 1, 10, 11, 8, 11, 5, 12, 13, 11, 12, 8, 2, 2, 11, 18, 19, 9, 4, 5, 14, 12, 10, 0, 6, 15, 8, 14, 4, 9, 4, 2, 18, 16, 14, 14, 8, 14, 0, 1, 18, 6, 3, 8, 14, 3, 10, 5, 1, 19, 4, 14, 3, 1, 3, 8, 4, 13, 15, 2, 1, 1, 19, 3, 12, 8, 17, 9, 2, 19, 5, 10, 7, 0, 1, 0, 5, 6, 6, 11, 5, 0, 7, 6, 6, 17, 10, 3, 15, 8, 18, 10, 19, 4, 9, 13, 15, 1, 5, 17, 3, 4, 1, 13, 10, 1, 5, 7, 8, 18, 4, 3, 7, 14, 11, 10, 19, 0, 10, 18, 8, 17, 4, 15, 18, 7, 6, 3, 11, 17, 8, 10, 19, 11, 5, 8, 9, 12, 12, 3, 0, 0, 19, 12, 3, 18, 13, 9, 15, 8, 9, 6, 16, 8, 16, 13, 12, 7, 19, 0, 16, 16, 18, 8, 7, 10, 4, 17, 11, 16 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 17, 1, 14, 15, 18, 3, 15, 8, 2, 7, 18, 10, 19, 12, 4, 13, 5, 7, 2, 12, 0, 2, 16, 14, 10, 10, 18, 1, 7, 12, 0, 6, 14, 0, 12, 9, 18, 2, 17, 18, 5, 9, 19, 0, 16, 4, 12, 2, 5, 10, 10, 15, 19, 6, 9, 15, 0, 7, 7, 8, 19, 4, 14, 0, 9, 19, 18, 18, 9, 11, 4, 6, 11, 1, 13, 17, 11, 10, 15, 15, 0, 9, 9, 1, 9, 5, 2, 2, 7, 15, 5, 12, 5, 3, 10, 11, 11, 18, 8, 16, 13, 17, 16, 11, 1, 10, 17, 12, 19, 11, 0, 4, 11, 2, 6, 2, 6, 5, 4, 14, 17, 8, 11, 15, 14, 5, 10, 8, 11, 4, 1, 10, 17, 12, 19, 7, 4, 5, 12, 9, 18, 3, 10, 0, 8, 6, 19, 11, 1, 17, 12, 12, 3, 3, 4, 6, 4, 1, 18, 5, 15, 18, 4, 14, 12, 16, 6, 15, 2, 5, 13, 19, 3, 13, 12, 18, 19, 11, 14, 2, 1, 10, 2, 9, 10, 2, 5, 3, 12, 5, 18, 11, 7, 2, 2, 10, 14, 6, 19, 10, 7, 14, 14, 15, 19, 13, 14, 0, 2, 19, 6, 9, 10, 10, 18, 2, 17, 3, 15, 6, 2, 8, 6, 7, 10, 15, 0, 2, 19, 15, 3, 5, 13, 10, 13, 18, 17, 17, 11, 1, 17, 7, 16, 10, 11, 15, 2, 10, 13, 3, 9, 16, 16, 5, 9, 8, 2, 16, 15, 14, 1, 0, 1, 15, 19, 9, 5, 7, 11, 1, 17, 0, 1, 8, 3, 2, 11, 8, 16, 16, 5, 13, 7, 12, 16, 1, 4, 18, 11, 17, 1, 14, 19, 6, 8, 9, 16, 16, 16, 15, 8, 11, 10, 11, 8, 8, 15, 3, 19, 3, 17, 17, 14, 10, 0, 18, 13, 18, 11, 7, 18, 14, 11, 1, 7, 0, 6, 4, 11, 13, 17, 5, 3, 14, 2, 15, 3, 13, 10, 2, 6, 17, 4, 5, 1, 18, 16, 13, 10, 6, 8, 6, 14, 6, 19, 6, 7, 13, 6, 3, 3, 14, 11, 9, 17, 1, 19, 9, 18, 8, 17, 15, 9, 8, 0, 14, 14, 6, 14, 18, 9, 16, 10, 9, 15, 4, 1, 13, 2, 15, 4, 1, 7, 3, 6, 7, 9, 2, 13, 6 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 11, 5, 3, 6, 9, 4, 14, 17, 5, 15, 5, 11, 6, 1, 10, 14, 2, 9, 15, 10, 0, 6, 13, 1, 18, 5, 13, 3, 16, 12, 12, 16, 4, 8, 6, 9, 17, 2, 16, 12, 0, 11, 8, 7, 3, 4, 5, 18, 0, 6, 3, 9, 9, 13, 19, 9, 17, 17, 16, 2, 0, 16, 11, 3, 12, 1, 7, 11, 14, 15, 4, 17, 0, 14, 18, 3, 15, 1, 6, 5, 17, 2, 11, 11, 0, 6, 14, 5, 1, 2, 5, 17, 14, 14, 11, 0, 19, 13, 17, 14, 15, 19, 13, 14, 17, 18, 7, 1, 1, 14, 11, 0, 19, 4, 15, 11, 19, 15, 16, 5, 18, 10, 0, 1, 9, 3, 15, 17, 6, 17, 0, 11, 16, 5, 12, 10, 14, 10, 17, 9, 15, 9, 10, 6, 17, 18, 7, 17, 15, 16, 16, 0, 10, 8, 16, 10, 0, 7, 16, 5, 11, 2, 8, 8, 12, 9, 19, 0, 3, 15, 13, 6, 3, 4, 5, 16, 1, 0, 17, 2, 0, 2, 19, 18, 9, 14, 1, 19, 14, 10, 12, 15, 18, 3, 6, 1, 14, 4, 12, 6, 5, 19, 0, 0, 5, 12, 10, 3, 12, 4, 3, 6, 19, 7, 7, 19, 18, 10, 1, 8, 6, 13, 11, 8, 10, 5, 0, 4, 16, 6, 11, 7, 16, 16, 1, 4, 11, 18, 19, 4, 0, 11, 7, 7, 15, 5, 1, 7, 10, 6, 19, 4, 7, 9, 13, 5, 3, 9, 0, 11, 11, 7, 18, 2, 13, 16, 19, 8, 15, 9, 14, 3, 19, 13, 10, 6, 17, 14, 0, 18, 7, 10, 14, 17, 12, 19, 7, 16, 3, 3, 8, 11, 14, 1, 12, 19, 9, 17, 10, 13, 1, 5, 10, 12, 13, 9, 1, 10, 5, 14, 17, 10, 2, 0, 7, 13, 18, 8, 19, 13, 9, 10, 18, 18, 2, 1, 10, 15, 9, 17, 10, 12, 7, 10, 7, 19, 10, 4, 3, 18, 14, 9, 3, 9, 11, 4, 16, 17, 3, 11, 14, 9, 4, 18, 4, 18, 15, 0, 5, 2, 1, 2, 17, 17, 1, 14, 12, 15, 12, 12, 6, 12, 3, 12, 12, 2, 16, 12, 7, 11, 7, 18, 18, 13, 6, 3, 0, 0, 6, 15, 6, 4, 5, 13, 3, 10, 9, 12, 13, 3 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 9, 14, 7, 5, 2, 16, 13, 4, 10, 0, 6, 19, 3, 1, 0, 19, 10, 10, 1, 14, 6, 13, 12, 4, 19, 1, 11, 17, 6, 7, 0, 9, 0, 18, 12, 8, 5, 17, 16, 11, 3, 15, 7, 19, 10, 12, 2, 0, 5, 17, 17, 3, 11, 0, 6, 11, 3, 8, 6, 6, 10, 1, 18, 6, 1, 18, 12, 3, 5, 7, 10, 0, 14, 16, 11, 8, 13, 11, 18, 1, 15, 19, 7, 2, 6, 9, 14, 0, 16, 3, 4, 6, 1, 3, 6, 16, 4, 11, 13, 9, 0, 7, 8, 9, 10, 14, 1, 14, 7, 9, 5, 2, 1, 13, 12, 10, 12, 19, 17, 12, 6, 4, 17, 3, 18, 0, 1, 8, 13, 11, 0, 19, 2, 3, 5, 6, 11, 11, 11, 5, 7, 12, 13, 6, 1, 3, 12, 4, 4, 19, 12, 12, 7, 17, 12, 18, 5, 5, 18, 18, 10, 14, 17, 4, 16, 4, 18, 6, 16, 9, 11, 2, 3, 0, 1, 5, 2, 19, 14, 8, 1, 4, 12, 19, 5, 18, 6, 7, 12, 1, 5, 7, 12, 16, 18, 9, 2, 11, 11, 1, 8, 10, 7, 4, 9, 13, 0, 12, 15, 5, 15, 13, 17, 19, 9, 0, 3, 4, 16, 17, 11, 6, 12, 3, 14, 7, 8, 4, 4, 3, 17, 9, 9, 15, 0, 6, 14, 17, 11, 9, 10, 16, 9, 0, 17, 6, 19, 9, 19, 3, 4, 12, 17, 8, 6, 19, 7, 15, 4, 3, 8, 15, 2, 17, 17, 11, 4, 19, 2, 3, 12, 9, 5, 18, 14, 5, 15, 10, 10, 17, 6, 19, 0, 15, 18, 2, 7, 13, 18, 9, 14, 5, 10, 1, 16, 4, 0, 15, 1, 18, 16, 5, 7, 4, 6, 19, 12, 3, 2, 10, 0, 13, 8, 17, 19, 9, 7, 4, 11, 8, 6, 9, 2, 4, 1, 9, 17, 14, 18, 15, 7, 3, 0, 18, 0, 10, 0, 9, 19, 16, 10, 1, 17, 3, 9, 11, 19, 1, 3, 12, 10, 12, 14, 8, 12, 18, 18, 2, 9, 2, 2, 5, 13, 19, 14, 8, 10, 17, 1, 4, 4, 1, 12, 9, 7, 1, 5, 3, 9, 4, 3, 14, 8, 0, 18, 3, 9, 15, 7, 15, 12, 8, 12, 8, 15, 16, 0, 11, 10, 1 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 18, 10, 16, 0, 11, 17, 1, 16, 8, 14, 0, 4, 13, 12, 9, 17, 14, 8, 18, 14, 3, 6, 11, 17, 13, 14, 11, 10, 13, 7, 0, 13, 8, 12, 4, 8, 1, 5, 4, 13, 11, 17, 9, 5, 1, 3, 10, 15, 15, 0, 1, 11, 2, 0, 0, 19, 10, 19, 9, 15, 4, 15, 14, 5, 19, 7, 5, 11, 15, 3, 6, 8, 12, 9, 14, 7, 13, 4, 2, 15, 17, 19, 18, 8, 16, 7, 2, 19, 17, 15, 13, 14, 2, 8, 7, 16, 2, 5, 17, 13, 8, 15, 1, 3, 14, 6, 19, 19, 11, 14, 11, 14, 4, 13, 7, 19, 18, 0, 19, 2, 19, 18, 8, 8, 0, 2, 4, 17, 7, 4, 1, 18, 11, 3, 16, 5, 1, 14, 18, 4, 7, 2, 19, 15, 10, 11, 8, 16, 18, 15, 10, 6, 8, 11, 1, 15, 13, 16, 6, 14, 1, 0, 0, 2, 2, 2, 10, 4, 8, 18, 6, 1, 0, 8, 15, 0, 13, 11, 0, 2, 8, 15, 4, 17, 6, 17, 14, 15, 9, 18, 10, 19, 3, 7, 12, 2, 6, 2, 2, 17, 14, 18, 0, 7, 15, 7, 16, 6, 10, 10, 14, 6, 1, 5, 2, 7, 13, 6, 11, 5, 3, 0, 3, 9, 15, 15, 1, 10, 8, 17, 17, 3, 15, 12, 15, 6, 3, 0, 8, 17, 18, 7, 19, 5, 17, 16, 1, 19, 19, 14, 11, 17, 14, 1, 15, 16, 5, 15, 12, 14, 17, 19, 9, 3, 8, 6, 5, 0, 7, 15, 6, 18, 2, 7, 3, 15, 8, 5, 10, 3, 19, 0, 4, 18, 4, 3, 12, 12, 17, 3, 13, 8, 1, 12, 11, 1, 8, 14, 1, 19, 13, 4, 17, 8, 5, 14, 13, 17, 19, 12, 17, 13, 11, 17, 12, 3, 17, 19, 0, 14, 13, 7, 11, 1, 0, 3, 7, 1, 13, 10, 10, 12, 0, 1, 15, 4, 7, 6, 2, 13, 13, 2, 6, 4, 14, 9, 18, 16, 17, 1, 10, 8, 5, 16, 9, 6, 6, 6, 6, 11, 8, 13, 19, 18, 6, 7, 4, 8, 11, 14, 4, 19, 6, 5, 11, 14, 9, 3, 0, 4, 12, 19, 13, 10, 14, 12, 1, 4, 0, 0, 14, 1, 17, 10, 19, 1, 10, 16, 7, 17 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 9, 4, 15, 11, 12, 18, 17, 2, 10, 8, 0, 0, 19, 19, 14, 2, 3, 5, 2, 1, 10, 4, 4, 4, 6, 6, 7, 0, 13, 18, 7, 8, 5, 8, 6, 16, 6, 18, 14, 19, 4, 12, 1, 15, 10, 2, 5, 6, 0, 18, 19, 19, 18, 17, 14, 14, 12, 3, 14, 17, 12, 2, 2, 9, 8, 16, 7, 12, 4, 14, 1, 19, 7, 17, 4, 0, 1, 10, 0, 5, 14, 0, 9, 6, 10, 11, 10, 19, 11, 5, 2, 7, 12, 12, 11, 19, 12, 18, 14, 18, 18, 13, 0, 1, 8, 19, 17, 5, 0, 0, 13, 1, 12, 1, 15, 12, 12, 5, 0, 0, 10, 15, 12, 12, 2, 2, 15, 11, 8, 11, 19, 2, 2, 5, 18, 15, 2, 12, 11, 15, 2, 11, 4, 7, 18, 15, 3, 1, 13, 7, 10, 11, 14, 7, 18, 13, 12, 6, 7, 19, 7, 9, 9, 17, 9, 1, 17, 14, 5, 11, 15, 2, 12, 15, 7, 6, 9, 16, 19, 1, 8, 15, 13, 13, 9, 8, 17, 8, 5, 9, 2, 18, 8, 4, 13, 8, 18, 16, 19, 16, 13, 14, 1, 0, 5, 8, 4, 7, 9, 17, 9, 6, 19, 3, 18, 15, 0, 5, 5, 13, 13, 5, 17, 11, 16, 7, 2, 1, 11, 5, 8, 8, 0, 10, 1, 11, 12, 9, 2, 12, 6, 13, 12, 9, 0, 9, 13, 4, 5, 9, 3, 19, 0, 8, 7, 18, 13, 0, 15, 4, 16, 2, 8, 11, 12, 8, 14, 3, 14, 1, 16, 6, 12, 11, 1, 2, 13, 2, 6, 8, 10, 6, 10, 15, 9, 6, 19, 0, 16, 12, 14, 1, 6, 4, 0, 14, 11, 18, 1, 15, 11, 10, 17, 5, 13, 11, 4, 8, 10, 18, 6, 1, 1, 4, 17, 16, 3, 4, 9, 0, 7, 4, 1, 0, 8, 5, 2, 18, 7, 13, 10, 14, 10, 18, 5, 6, 2, 4, 1, 15, 7, 1, 6, 10, 4, 12, 9, 6, 3, 4, 7, 14, 16, 9, 2, 12, 2, 16, 16, 8, 12, 12, 9, 3, 11, 6, 17, 14, 4, 10, 18, 9, 16, 8, 15, 16, 14, 3, 7, 15, 19, 7, 7, 15, 3, 1, 17, 14, 1, 16, 10, 3, 9, 1, 11, 18, 1, 8, 5, 10 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 13, 12, 0, 6, 18, 18, 11, 16, 10, 10, 10, 8, 6, 7, 17, 16, 4, 16, 8, 9, 11, 10, 5, 0, 12, 0, 14, 6, 2, 1, 13, 1, 9, 4, 16, 6, 19, 4, 14, 10, 18, 18, 7, 17, 8, 7, 13, 7, 12, 10, 11, 0, 15, 8, 15, 5, 19, 16, 2, 5, 6, 16, 3, 18, 3, 12, 15, 1, 5, 17, 17, 15, 18, 1, 7, 15, 9, 1, 18, 3, 10, 3, 19, 5, 11, 8, 7, 15, 7, 18, 14, 19, 12, 12, 15, 17, 14, 16, 2, 19, 6, 14, 7, 2, 6, 11, 8, 2, 6, 16, 0, 8, 10, 12, 7, 2, 19, 1, 10, 19, 16, 7, 10, 13, 2, 3, 5, 19, 5, 4, 18, 19, 10, 15, 19, 11, 1, 1, 0, 4, 1, 3, 18, 1, 15, 1, 14, 5, 15, 1, 4, 10, 8, 14, 1, 0, 15, 19, 18, 11, 13, 12, 3, 15, 1, 16, 4, 5, 15, 13, 9, 14, 1, 3, 15, 11, 4, 16, 8, 16, 8, 9, 13, 16, 19, 9, 3, 12, 11, 1, 8, 2, 10, 13, 11, 1, 14, 0, 13, 13, 10, 10, 9, 16, 12, 7, 15, 11, 19, 7, 19, 5, 5, 3, 11, 15, 14, 12, 18, 7, 7, 4, 10, 14, 17, 3, 15, 13, 19, 6, 1, 16, 19, 9, 6, 9, 5, 18, 8, 15, 17, 14, 4, 13, 13, 17, 11, 12, 4, 3, 11, 10, 7, 15, 13, 19, 4, 4, 3, 10, 7, 8, 9, 17, 10, 17, 6, 13, 1, 1, 3, 5, 14, 9, 10, 19, 5, 19, 5, 5, 18, 17, 4, 1, 7, 13, 8, 10, 18, 10, 12, 0, 16, 10, 12, 1, 14, 12, 9, 15, 18, 12, 1, 8, 7, 12, 0, 13, 18, 12, 16, 18, 14, 6, 2, 8, 19, 5, 0, 7, 12, 14, 13, 19, 7, 10, 11, 4, 9, 2, 11, 10, 9, 13, 18, 9, 12, 0, 12, 3, 1, 10, 4, 11, 19, 7, 2, 19, 8, 9, 0, 6, 3, 8, 10, 12, 2, 0, 1, 4, 2, 1, 2, 9, 5, 18, 9, 18, 2, 18, 3, 18, 16, 3, 6, 13, 2, 16, 9, 12, 11, 8, 2, 16, 5, 14, 8, 3, 7, 8, 16, 15, 1, 13, 7, 18, 17, 7, 12, 5 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 17, 14, 17, 11, 4, 18, 1, 14, 0, 11, 9, 6, 17, 19, 18, 15, 7, 8, 9, 7, 9, 19, 16, 3, 11, 12, 15, 11, 13, 1, 4, 19, 1, 13, 12, 12, 2, 19, 18, 4, 14, 12, 8, 0, 16, 8, 8, 9, 18, 15, 9, 5, 2, 5, 2, 6, 11, 12, 13, 5, 8, 5, 9, 17, 2, 12, 13, 8, 13, 12, 0, 16, 4, 3, 17, 14, 10, 9, 17, 0, 9, 8, 4, 2, 4, 8, 12, 8, 12, 12, 4, 14, 7, 5, 19, 13, 15, 13, 1, 2, 7, 1, 19, 10, 9, 17, 2, 13, 16, 17, 4, 1, 10, 18, 15, 3, 16, 2, 4, 7, 13, 11, 2, 16, 13, 2, 13, 9, 11, 7, 18, 13, 2, 14, 3, 18, 8, 1, 2, 8, 17, 17, 16, 15, 15, 9, 1, 15, 2, 18, 6, 12, 11, 5, 3, 12, 16, 1, 5, 1, 19, 15, 3, 15, 5, 5, 11, 5, 1, 4, 8, 15, 6, 14, 18, 13, 10, 7, 16, 7, 17, 10, 1, 8, 5, 8, 15, 15, 15, 2, 17, 2, 18, 18, 5, 7, 9, 13, 15, 6, 10, 18, 7, 18, 11, 2, 19, 2, 4, 15, 2, 18, 7, 6, 8, 15, 7, 15, 14, 6, 1, 8, 15, 6, 19, 16, 1, 9, 1, 10, 13, 6, 1, 10, 16, 9, 13, 19, 12, 12, 9, 0, 18, 10, 5, 0, 15, 4, 13, 19, 17, 1, 8, 16, 10, 3, 5, 11, 19, 12, 0, 15, 9, 2, 17, 17, 17, 16, 0, 18, 15, 18, 15, 9, 5, 1, 1, 0, 10, 9, 5, 2, 3, 16, 17, 3, 19, 13, 8, 17, 10, 8, 15, 2, 5, 6, 7, 6, 3, 6, 1, 2, 2, 10, 10, 19, 8, 16, 11, 17, 16, 12, 18, 1, 4, 6, 17, 12, 16, 0, 12, 18, 6, 12, 13, 19, 10, 11, 2, 12, 3, 12, 9, 5, 2, 16, 10, 12, 1, 6, 0, 12, 17, 1, 14, 7, 9, 18, 11, 19, 3, 11, 18, 4, 12, 10, 14, 17, 16, 0, 12, 9, 3, 5, 10, 14, 18, 17, 10, 17, 7, 7, 12, 10, 6, 13, 7, 19, 1, 14, 19, 13, 9, 18, 16, 8, 11, 6, 7, 10, 17, 18, 15, 10, 16, 9, 19, 8, 15, 16 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 15, 18, 18, 12, 3, 4, 4, 17, 0, 0, 17, 19, 13, 9, 13, 11, 10, 11, 8, 14, 0, 10, 16, 16, 19, 14, 14, 19, 3, 4, 16, 16, 5, 9, 7, 4, 19, 6, 4, 11, 15, 13, 12, 14, 11, 18, 1, 7, 17, 15, 19, 12, 17, 1, 8, 7, 9, 10, 17, 14, 3, 0, 17, 8, 18, 4, 17, 16, 9, 1, 13, 15, 1, 15, 0, 17, 0, 19, 5, 6, 5, 13, 13, 9, 16, 10, 1, 8, 15, 14, 2, 9, 15, 9, 16, 10, 16, 17, 15, 19, 8, 0, 15, 10, 0, 7, 18, 10, 7, 3, 7, 10, 9, 1, 14, 2, 14, 11, 12, 6, 13, 15, 8, 13, 1, 0, 7, 15, 18, 15, 13, 19, 5, 1, 5, 8, 4, 17, 6, 4, 8, 2, 6, 6, 8, 1, 18, 16, 18, 15, 16, 15, 0, 15, 6, 2, 10, 17, 3, 19, 2, 5, 15, 13, 9, 6, 12, 13, 19, 1, 1, 12, 14, 7, 9, 18, 18, 3, 11, 0, 0, 19, 13, 15, 11, 8, 19, 2, 7, 9, 15, 18, 13, 3, 1, 11, 9, 12, 6, 17, 13, 12, 11, 14, 5, 19, 16, 19, 6, 7, 15, 13, 10, 4, 4, 17, 1, 6, 14, 13, 16, 19, 14, 17, 16, 12, 12, 13, 4, 12, 16, 12, 0, 5, 6, 7, 9, 2, 3, 11, 16, 14, 15, 5, 0, 19, 6, 3, 11, 19, 5, 8, 12, 0, 19, 7, 2, 5, 4, 2, 10, 17, 11, 1, 2, 4, 6, 17, 4, 19, 14, 8, 16, 0, 16, 17, 11, 17, 2, 7, 3, 16, 5, 8, 5, 0, 0, 4, 14, 8, 16, 5, 16, 17, 10, 4, 12, 9, 11, 12, 17, 4, 15, 2, 12, 10, 2, 7, 11, 9, 0, 12, 15, 14, 13, 12, 0, 18, 2, 19, 8, 9, 14, 17, 8, 5, 16, 4, 12, 11, 15, 1, 0, 3, 1, 8, 12, 15, 5, 1, 14, 15, 15, 18, 11, 16, 1, 11, 4, 2, 19, 19, 1, 1, 11, 8, 12, 4, 5, 17, 6, 17, 17, 2, 2, 12, 1, 5, 5, 14, 14, 16, 5, 15, 15, 15, 0, 1, 12, 2, 19, 14, 10, 9, 17, 10, 1, 17, 13, 17, 18, 14, 7, 18, 16, 17, 7, 17, 13, 0 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 3, 18, 8, 6, 5, 8, 4, 4, 15, 4, 13, 2, 14, 19, 16, 7, 7, 9, 4, 7, 10, 4, 15, 13, 18, 2, 14, 17, 14, 10, 11, 17, 0, 12, 5, 18, 18, 13, 2, 16, 3, 15, 9, 15, 19, 1, 7, 1, 14, 11, 19, 5, 11, 10, 8, 5, 15, 15, 8, 3, 18, 0, 3, 11, 14, 9, 9, 13, 14, 3, 16, 15, 17, 19, 6, 10, 10, 12, 14, 7, 6, 18, 12, 0, 18, 0, 13, 6, 6, 4, 3, 5, 5, 1, 16, 8, 8, 7, 9, 15, 4, 7, 2, 1, 16, 9, 5, 9, 13, 8, 14, 5, 0, 19, 3, 11, 11, 11, 15, 10, 0, 1, 19, 17, 12, 19, 17, 2, 15, 17, 6, 18, 7, 17, 16, 4, 15, 13, 14, 1, 2, 9, 15, 0, 18, 15, 17, 0, 11, 19, 7, 7, 19, 3, 15, 12, 6, 6, 16, 4, 19, 11, 18, 3, 18, 11, 4, 8, 8, 7, 18, 3, 3, 4, 9, 0, 13, 0, 2, 12, 11, 14, 0, 17, 7, 16, 13, 2, 3, 14, 7, 3, 16, 13, 13, 1, 12, 19, 2, 2, 0, 18, 7, 14, 11, 10, 12, 0, 18, 3, 0, 2, 3, 18, 4, 13, 12, 14, 3, 9, 5, 10, 5, 5, 1, 2, 1, 16, 16, 3, 7, 9, 17, 13, 18, 15, 1, 3, 12, 12, 5, 8, 13, 7, 9, 11, 13, 14, 3, 9, 14, 5, 2, 9, 6, 14, 2, 11, 19, 3, 2, 15, 13, 1, 2, 15, 13, 19, 4, 11, 0, 16, 9, 19, 7, 15, 2, 14, 0, 19, 10, 0, 16, 7, 16, 17, 9, 11, 15, 17, 5, 10, 15, 18, 11, 18, 10, 12, 6, 5, 9, 5, 4, 14, 2, 19, 18, 13, 19, 15, 17, 15, 6, 12, 9, 11, 11, 7, 7, 7, 14, 14, 15, 4, 19, 19, 10, 19, 12, 15, 12, 3, 12, 6, 5, 14, 18, 19, 6, 4, 12, 3, 19, 5, 11, 16, 10, 10, 8, 11, 2, 11, 18, 8, 7, 1, 9, 3, 11, 2, 15, 13, 8, 10, 3, 19, 13, 10, 15, 5, 0, 10, 18, 11, 4, 18, 6, 5, 3, 14, 6, 11, 13, 1, 0, 10, 16, 12, 6, 6, 0, 13, 6, 3, 5, 0, 16, 16, 13, 18 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 9, 2, 11, 19, 16, 12, 2, 15, 0, 10, 12, 1, 15, 8, 8, 5, 9, 8, 7, 18, 4, 18, 16, 2, 5, 14, 17, 8, 4, 3, 8, 6, 7, 1, 9, 10, 10, 10, 8, 2, 2, 9, 11, 1, 15, 3, 8, 14, 13, 13, 7, 7, 1, 11, 10, 2, 9, 16, 0, 19, 13, 19, 6, 17, 7, 9, 5, 8, 18, 10, 15, 3, 18, 6, 1, 9, 6, 6, 13, 1, 2, 1, 14, 6, 2, 7, 18, 6, 7, 6, 6, 9, 15, 15, 6, 15, 19, 4, 11, 15, 10, 3, 8, 1, 3, 4, 3, 17, 8, 13, 15, 3, 1, 1, 15, 16, 9, 12, 10, 13, 16, 2, 8, 1, 18, 13, 1, 15, 4, 5, 5, 18, 5, 0, 4, 5, 19, 13, 12, 10, 17, 5, 6, 6, 9, 8, 3, 7, 8, 7, 11, 2, 4, 3, 14, 17, 15, 3, 17, 19, 16, 2, 18, 1, 14, 5, 8, 0, 11, 15, 15, 2, 3, 4, 4, 10, 7, 5, 13, 18, 11, 2, 1, 16, 4, 2, 1, 8, 1, 13, 15, 15, 18, 19, 2, 2, 14, 13, 19, 14, 9, 14, 1, 19, 16, 9, 0, 17, 2, 6, 1, 6, 8, 4, 15, 13, 0, 7, 8, 16, 0, 0, 4, 17, 9, 6, 19, 3, 12, 14, 3, 12, 9, 9, 4, 13, 9, 9, 3, 2, 19, 16, 12, 6, 5, 3, 13, 15, 10, 17, 14, 17, 15, 8, 18, 6, 17, 9, 5, 17, 19, 16, 8, 1, 17, 2, 17, 11, 19, 10, 17, 14, 19, 16, 2, 0, 0, 5, 6, 13, 11, 10, 14, 3, 1, 11, 14, 9, 8, 4, 14, 3, 11, 13, 19, 15, 5, 8, 11, 5, 2, 19, 9, 16, 2, 18, 5, 19, 6, 4, 9, 15, 4, 4, 1, 17, 5, 9, 11, 6, 14, 18, 0, 8, 12, 15, 1, 4, 6, 8, 13, 9, 17, 9, 14, 14, 6, 17, 1, 12, 11, 2, 18, 0, 0, 18, 19, 6, 18, 19, 3, 2, 12, 9, 17, 3, 1, 3, 18, 6, 2, 4, 4, 10, 3, 16, 11, 14, 17, 11, 15, 3, 18, 15, 17, 19, 8, 19, 16, 5, 7, 11, 10, 13, 7, 6, 13, 12, 6, 19, 12, 0, 2, 1, 8, 5, 12, 7, 7, 12 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 9, 3, 10, 4, 2, 4, 16, 16, 4, 7, 7, 17, 13, 16, 15, 15, 10, 6, 9, 14, 0, 11, 4, 2, 6, 18, 14, 3, 17, 16, 3, 6, 14, 9, 15, 5, 5, 8, 4, 11, 8, 14, 14, 19, 8, 9, 5, 18, 4, 9, 12, 16, 9, 10, 18, 1, 7, 6, 6, 13, 8, 13, 7, 15, 5, 13, 3, 5, 6, 19, 9, 9, 5, 16, 18, 3, 17, 9, 9, 13, 10, 13, 16, 4, 14, 15, 12, 2, 6, 2, 16, 8, 1, 3, 11, 17, 3, 0, 8, 13, 3, 16, 6, 0, 17, 16, 7, 3, 4, 15, 5, 9, 6, 5, 4, 7, 14, 18, 4, 13, 5, 15, 3, 15, 5, 2, 14, 18, 16, 1, 19, 17, 19, 16, 11, 7, 15, 14, 17, 16, 0, 18, 5, 2, 18, 7, 3, 19, 5, 14, 19, 18, 19, 13, 10, 18, 16, 19, 3, 2, 11, 7, 11, 0, 6, 15, 8, 9, 7, 12, 1, 13, 14, 12, 17, 19, 15, 11, 10, 4, 0, 4, 5, 4, 2, 10, 6, 14, 11, 18, 10, 19, 12, 1, 2, 18, 10, 13, 4, 6, 14, 6, 14, 8, 8, 6, 9, 0, 14, 4, 5, 13, 0, 17, 9, 5, 17, 3, 12, 5, 9, 13, 4, 2, 8, 19, 18, 8, 12, 6, 6, 14, 2, 9, 13, 7, 18, 16, 11, 10, 8, 2, 11, 9, 7, 8, 13, 5, 19, 5, 17, 4, 6, 17, 11, 5, 17, 6, 10, 12, 3, 15, 10, 2, 16, 18, 1, 3, 9, 16, 13, 16, 15, 15, 0, 0, 0, 15, 3, 13, 16, 14, 16, 8, 1, 6, 0, 19, 9, 11, 5, 19, 6, 15, 8, 1, 15, 7, 3, 15, 12, 14, 11, 19, 15, 3, 9, 4, 3, 7, 4, 3, 14, 14, 1, 18, 5, 1, 4, 11, 2, 2, 5, 8, 4, 6, 17, 0, 18, 2, 2, 14, 8, 15, 7, 17, 12, 16, 10, 2, 13, 11, 0, 2, 7, 2, 13, 15, 1, 12, 12, 2, 6, 10, 19, 8, 9, 18, 9, 16, 6, 0, 8, 16, 6, 8, 13, 10, 16, 3, 2, 14, 7, 17, 5, 6, 18, 10, 3, 5, 18, 11, 18, 4, 2, 5, 9, 12, 2, 19, 8, 2, 16, 9, 17, 9, 12, 1, 7, 0 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 18, 9, 7, 2, 5, 16, 13, 0, 4, 17, 1, 3, 0, 3, 8, 11, 3, 8, 1, 6, 17, 5, 14, 7, 6, 19, 16, 17, 9, 6, 11, 5, 7, 19, 11, 6, 1, 16, 9, 12, 2, 9, 2, 19, 16, 13, 9, 12, 5, 18, 15, 7, 8, 19, 15, 13, 4, 10, 4, 1, 17, 16, 10, 2, 15, 12, 17, 12, 16, 12, 10, 7, 16, 1, 16, 19, 15, 19, 4, 5, 16, 16, 16, 13, 8, 0, 14, 16, 13, 11, 16, 17, 3, 9, 13, 18, 1, 8, 2, 17, 14, 5, 14, 1, 4, 13, 3, 4, 8, 19, 15, 6, 9, 16, 6, 2, 5, 2, 18, 0, 4, 0, 11, 7, 7, 4, 3, 6, 4, 12, 10, 6, 2, 1, 12, 3, 1, 13, 4, 12, 17, 18, 19, 10, 2, 8, 11, 12, 19, 6, 19, 2, 0, 14, 16, 16, 12, 6, 15, 10, 15, 17, 7, 5, 4, 1, 15, 10, 18, 0, 15, 0, 11, 15, 10, 18, 3, 10, 17, 3, 6, 6, 8, 17, 10, 15, 15, 7, 2, 17, 11, 10, 16, 0, 15, 16, 5, 13, 2, 11, 10, 0, 8, 19, 14, 9, 16, 12, 11, 18, 14, 16, 18, 2, 12, 14, 15, 13, 10, 1, 15, 15, 8, 1, 1, 6, 6, 12, 5, 9, 10, 18, 15, 7, 8, 2, 15, 8, 12, 7, 17, 14, 0, 7, 15, 12, 7, 5, 14, 1, 3, 14, 15, 2, 13, 2, 8, 17, 0, 0, 8, 15, 14, 4, 14, 17, 3, 17, 9, 6, 2, 16, 7, 8, 14, 18, 6, 0, 1, 0, 0, 13, 13, 11, 4, 18, 19, 8, 19, 7, 10, 15, 11, 13, 1, 9, 1, 19, 6, 1, 8, 8, 17, 13, 12, 18, 1, 19, 0, 3, 2, 3, 11, 4, 17, 10, 14, 3, 6, 2, 13, 6, 2, 5, 18, 15, 2, 14, 10, 4, 13, 7, 0, 5, 7, 2, 1, 12, 2, 12, 17, 16, 12, 2, 14, 4, 6, 14, 12, 11, 11, 13, 10, 3, 16, 15, 1, 4, 6, 16, 0, 17, 17, 19, 9, 1, 5, 1, 1, 15, 17, 16, 3, 7, 6, 15, 13, 15, 13, 13, 5, 11, 5, 14, 17, 7, 2, 6, 11, 8, 2, 2, 1, 12, 5, 14, 9, 5, 18, 17 }
|
||||
},
|
||||
new object[]
|
||||
{
|
||||
new double[] { 5, 14, 12, 16, 9, 6, 12, 17, 12, 17, 5, 5, 14, 1, 10, 13, 0, 11, 15, 9, 12, 4, 17, 11, 19, 8, 7, 2, 14, 12, 12, 16, 4, 4, 4, 18, 9, 6, 9, 7, 17, 8, 0, 10, 19, 13, 15, 10, 13, 17, 0, 12, 18, 17, 2, 12, 11, 2, 13, 13, 12, 12, 4, 11, 7, 6, 10, 0, 0, 2, 0, 13, 19, 17, 3, 1, 5, 11, 16, 11, 5, 2, 10, 10, 0, 9, 8, 18, 13, 2, 4, 8, 5, 9, 17, 2, 4, 18, 8, 5, 16, 18, 6, 4, 2, 0, 3, 3, 5, 0, 1, 17, 18, 2, 3, 3, 1, 13, 5, 12, 14, 14, 0, 18, 3, 6, 1, 16, 17, 9, 12, 16, 9, 3, 19, 9, 18, 1, 4, 4, 3, 12, 17, 9, 15, 18, 8, 4, 16, 14, 10, 7, 11, 17, 12, 4, 19, 2, 13, 10, 12, 6, 4, 19, 7, 19, 8, 0, 18, 11, 0, 6, 11, 7, 17, 9, 17, 14, 18, 5, 8, 9, 10, 6, 15, 16, 8, 5, 13, 16, 7, 5, 1, 3, 18, 19, 5, 15, 3, 11, 11, 11, 8, 7, 7, 11, 4, 15, 12, 3, 18, 15, 1, 0, 17, 9, 7, 1, 0, 14, 14, 9, 3, 19, 1, 15, 5, 14, 8, 12, 13, 3, 4, 17, 3, 3, 19, 4, 14, 5, 9, 13, 18, 9, 18, 5, 13, 7, 14, 4, 17, 16, 15, 8, 10, 8, 0, 10, 12, 18, 9, 15, 3, 2, 0, 13, 17, 16, 9, 18, 6, 7, 18, 9, 11, 1, 6, 10, 0, 10, 19, 0, 8, 15, 10, 15, 8, 18, 12, 1, 19, 5, 10, 14, 9, 11, 1, 12, 2, 12, 16, 5, 13, 4, 12, 14, 6, 3, 11, 13, 4, 3, 17, 10, 13, 14, 18, 15, 5, 14, 15, 6, 9, 16, 0, 7, 13, 15, 10, 2, 10, 3, 4, 8, 19, 15, 12, 12, 16, 5, 18, 1, 3, 7, 8, 16, 7, 5, 13, 15, 3, 12, 4, 7, 10, 10, 13, 9, 1, 14, 2, 0, 8, 1, 5, 1, 11, 16, 16, 9, 18, 1, 13, 9, 9, 14, 3, 13, 16, 0, 17, 16, 12, 12, 1, 10, 3, 13, 5, 1, 19, 9, 7, 9, 6, 0, 7, 14, 18, 18 }
|
||||
}
|
||||
};
|
||||
#endregion
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(ModeData))]
|
||||
public void Mode(double[] data, double expected)
|
||||
{
|
||||
Assert.Equal(expected, data.Mode(), PreciseDoubleComparer);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(ModeDataNaN))]
|
||||
public void ModeNaN(double[] data)
|
||||
{
|
||||
Assert.Equal(double.NaN, data.Mode());
|
||||
}
|
||||
}
|
||||
}
|
@@ -99,6 +99,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\UglyToad.PdfPig.Core\UglyToad.PdfPig.Core.csproj" />
|
||||
<ProjectReference Include="..\UglyToad.PdfPig.DocumentLayoutAnalysis\UglyToad.PdfPig.DocumentLayoutAnalysis.csproj" />
|
||||
<ProjectReference Include="..\UglyToad.PdfPig.Fonts\UglyToad.PdfPig.Fonts.csproj" />
|
||||
<ProjectReference Include="..\UglyToad.PdfPig.Tokenization\UglyToad.PdfPig.Tokenization.csproj" />
|
||||
<ProjectReference Include="..\UglyToad.PdfPig.Tokens\UglyToad.PdfPig.Tokens.csproj" />
|
||||
|
Reference in New Issue
Block a user