/// <summary>
 /// Initializes a new instance of the <see cref="HungarianIteration"/> struct.
 /// </summary>
 internal HungarianIteration(
     int[,] costs,
     byte[,] mask,
     bool[] rowsCovered,
     bool[] columnsCovered,
     HungarianAlgorithm.Steps step)
 {
     Matrix         = costs;
     Mask           = mask;
     RowsCovered    = rowsCovered;
     ColumnsCovered = columnsCovered;
     Step           = step;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="HungarianIteration"/> struct.
        /// </summary>
        internal HungarianIteration(
            [NotNull] int[,] costs,
            [NotNull] byte[,] mask,
            [NotNull] bool[] rowsCovered,
            [NotNull] bool[] columnsCovered,
            HungarianAlgorithm.Steps step)
        {
            Debug.Assert(costs != null);
            Debug.Assert(mask != null);
            Debug.Assert(rowsCovered != null);
            Debug.Assert(columnsCovered != null);

            Matrix         = costs;
            Mask           = mask;
            RowsCovered    = rowsCovered;
            ColumnsCovered = columnsCovered;
            Step           = step;
        }