< Summary

Information
Class: MyNet.Temporal.Decomposition.TimeSpanDecompositionPresets
Assembly: MyNet.Temporal
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Temporal/Decomposition/TimeSpanDecompositionPresets.cs
Tag: 323_28699572109
Line coverage
100%
Covered lines: 60
Uncovered lines: 0
Coverable lines: 60
Total lines: 103
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Temporal/Decomposition/TimeSpanDecompositionPresets.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="TimeSpanDecompositionPresets.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using MyNet.Primitives;
 8
 9namespace MyNet.Temporal.Decomposition;
 10
 11public static class TimeSpanDecompositionPresets
 12{
 13    /// <summary>
 14    /// Gets strict decomposition: precise, no noise, no zero units.
 15    /// Best for logs, debugging, and technical output.
 16    /// </summary>
 317    public static TimeSpanDecompositionOptions Strict { get; } = new()
 318    {
 319        MinUnit = TimeUnit.Millisecond,
 320        MaxUnit = TimeUnit.Year,
 321        Mode = TimeSpanDecompositionMode.Hierarchical,
 322        MaxComponents = null,
 323        IncludeZeroUnits = false,
 324        RuleEngine = TimeUnitRuleSelector.Default,
 325        Quantizer = null
 326    };
 27
 28    /// <summary>
 29    /// Gets human-friendly decomposition optimized for UI display.
 30    /// Limits output size and removes empty units.
 31    /// </summary>
 332    public static TimeSpanDecompositionOptions Humanized { get; } = new()
 333    {
 334        MinUnit = TimeUnit.Second,
 335        MaxUnit = TimeUnit.Year,
 336        Mode = TimeSpanDecompositionMode.Hierarchical,
 337        MaxComponents = 2,
 338        IncludeZeroUnits = false,
 339        RuleEngine = TimeUnitRuleSelector.Default,
 340        Quantizer = null
 341    };
 42
 43    /// <summary>
 44    /// Gets compact representation: best effort single or few units.
 45    /// Example: 2 weeks instead of 14 days 0 hours.
 46    /// </summary>
 347    public static TimeSpanDecompositionOptions Compact { get; } = new()
 348    {
 349        MinUnit = TimeUnit.Minute,
 350        MaxUnit = TimeUnit.Year,
 351        Mode = TimeSpanDecompositionMode.LargestUnitOnly,
 352        MaxComponents = 1,
 353        IncludeZeroUnits = false,
 354        RuleEngine = TimeUnitRuleSelector.Default,
 355        Quantizer = null
 356    };
 57
 58    /// <summary>
 59    /// Gets full breakdown: keeps all units, including zeros.
 60    /// Useful for debugging or UI grids.
 61    /// </summary>
 362    public static TimeSpanDecompositionOptions Full { get; } = new()
 363    {
 364        MinUnit = TimeUnit.Millisecond,
 365        MaxUnit = TimeUnit.Year,
 366        Mode = TimeSpanDecompositionMode.Hierarchical,
 367        MaxComponents = null,
 368        IncludeZeroUnits = true,
 369        RuleEngine = TimeUnitRuleSelector.Default,
 370        Quantizer = null
 371    };
 72
 73    /// <summary>
 74    /// Gets smallest unit representation: flattens into the smallest unit.
 75    /// Useful for comparisons, sorting, or storage.
 76    /// </summary>
 377    public static TimeSpanDecompositionOptions SmallestUnit { get; } = new()
 378    {
 379        MinUnit = TimeUnit.Millisecond,
 380        MaxUnit = TimeUnit.Year,
 381        Mode = TimeSpanDecompositionMode.SmallestUnitOnly,
 382        MaxComponents = 1,
 383        IncludeZeroUnits = false,
 384        RuleEngine = TimeUnitRuleSelector.Default,
 385        Quantizer = null
 386    };
 87
 88    /// <summary>
 89    /// Gets largest unit only representation.
 90    /// Example: 2 weeks instead of detailed breakdown.
 91    /// </summary>
 392    public static TimeSpanDecompositionOptions LargestUnit { get; } = new()
 393    {
 394        MinUnit = TimeUnit.Millisecond,
 395        MaxUnit = TimeUnit.Year,
 396        Mode = TimeSpanDecompositionMode.LargestUnitOnly,
 397        MaxComponents = 1,
 398        IncludeZeroUnits = false,
 399        RuleEngine = TimeUnitRuleSelector.Default,
 3100        Quantizer = null
 3101    };
 102}
 103

Methods/Properties

.cctor()