< Summary

Information
Class: SwiftCollections.Dimensions.SwiftShortArray2D
Assembly: SwiftCollections
File(s): /home/runner/work/SwiftCollections/SwiftCollections/src/SwiftCollections/Dimension/Default/SwiftShortArray2D.cs
Line coverage
95%
Covered lines: 19
Uncovered lines: 1
Coverable lines: 20
Total lines: 62
Line coverage: 95%
Branch coverage
100%
Covered branches: 10
Total branches: 10
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%210%
.ctor(...)100%11100%
.ctor(...)100%11100%
.ctor(...)100%11100%
.ctor(...)100%11100%
Scale(...)100%22100%
Normalize(...)100%88100%

File(s)

/home/runner/work/SwiftCollections/SwiftCollections/src/SwiftCollections/Dimension/Default/SwiftShortArray2D.cs

#LineLine coverage
 1using MemoryPack;
 2using System;
 3using System.Text.Json.Serialization;
 4
 5namespace SwiftCollections.Dimensions;
 6
 7/// <summary>
 8/// Represents a 2D array specifically designed to handle short integer values.
 9/// </summary>
 10[Serializable]
 11[JsonConverter(typeof(SwiftStateJsonConverterFactory))]
 12[MemoryPackable]
 13public partial class SwiftShortArray2D : SwiftArray2D<short>
 14{
 15    #region Constructors
 16
 017    public SwiftShortArray2D() { }
 18
 319    public SwiftShortArray2D(int width, int height) : base(width, height) { }
 20
 1221    public SwiftShortArray2D(int width, int height, short defaultValue) : base(width, height, defaultValue) { }
 22
 623    public SwiftShortArray2D(short[,] source) : base(source) { }
 24
 25    [MemoryPackConstructor]
 626    public SwiftShortArray2D(Array2DState<short> state) : base(state) { }
 27
 28    #endregion
 29
 30    #region Collection Management
 31
 32    /// <summary>
 33    /// Scales all elements in the array by the specified factor.
 34    /// </summary>
 35    public void Scale(short factor)
 236    {
 3037        for (int i = 0; i < InnerArray.Length; i++)
 1338            InnerArray[i] = (short)(InnerArray[i] * factor);
 239    }
 40
 41    /// <summary>
 42    /// Normalizes all elements in the array to a specified range.
 43    /// </summary>
 44    public void Normalize(short min, short max)
 345    {
 346        short currentMin = short.MaxValue;
 347        short currentMax = short.MinValue;
 48
 49        // Find current min and max
 4350        foreach (var value in InnerArray)
 1751        {
 2052            if (value < currentMin) currentMin = value;
 2653            if (value > currentMax) currentMax = value;
 1754        }
 55
 56        // Normalize values
 4057        for (int i = 0; i < InnerArray.Length; i++)
 1758            InnerArray[i] = (short)(((InnerArray[i] - currentMin) / (float)(currentMax - currentMin)) * (max - min) + mi
 359    }
 60
 61    #endregion
 62}