chore: add xml comments
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace MirageMaintenance;
|
||||
|
||||
class Program
|
||||
public class Program
|
||||
{
|
||||
public static async Task<int> Main(string[] args)
|
||||
{
|
||||
@@ -34,16 +34,34 @@ class Program
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a report from the Oasis.
|
||||
/// </summary>
|
||||
/// <param name="ValueHistories">The value histories.</param>
|
||||
/// <returns>An instance of <see cref="OasisReport"/>.</returns>
|
||||
public class OasisReport(
|
||||
List<ValueHistory> valueHistories
|
||||
)
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the value histories.
|
||||
/// </summary>
|
||||
public List<ValueHistory> ValueHistories { get; init; } = valueHistories;
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the sum of all next values.
|
||||
/// </summary>
|
||||
/// <param name="backwards">if set to true will extrapolate next values backwards</param>
|
||||
/// <returns>The sum of all next values.</returns>
|
||||
public long CalculateSumOfNextValues(bool backwards = false) => ValueHistories
|
||||
.Select(valueHistory => valueHistory.CalculateNextValue(backwards))
|
||||
.Sum();
|
||||
|
||||
/// <summary>
|
||||
/// Parses the specified oasis report input.
|
||||
/// </summary>
|
||||
/// <param name="oasisReportInput">The oasis report input.</param>
|
||||
/// <returns>An instance of <see cref="OasisReport"/>.</returns>
|
||||
public static OasisReport Parse(string[] oasisReportInput)
|
||||
{
|
||||
var valueHistories = new List<ValueHistory>();
|
||||
@@ -63,17 +81,34 @@ public class OasisReport(
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a value history.
|
||||
/// </summary>
|
||||
/// <param name="Values">The values.</param>
|
||||
/// <returns>An instance of <see cref="ValueHistory"/>.</returns>
|
||||
public class ValueHistory(
|
||||
List<long> values
|
||||
)
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the values.
|
||||
/// </summary>
|
||||
List<long> Values { get; init; } = values;
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the differences between each value.
|
||||
/// </summary>
|
||||
/// <param name="values">The values.</param>
|
||||
/// <returns>The differences between each value.</returns>
|
||||
public List<long> CalculateDifferences(List<long> values) => Enumerable
|
||||
.Range(0, values.Count - 1)
|
||||
.Select(i => values[i + 1] - values[i])
|
||||
.ToList();
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the history.
|
||||
/// </summary>
|
||||
/// <returns>The history.</returns>
|
||||
public List<List<long>> CalculateHistory()
|
||||
{
|
||||
var allHistoricalValues = new List<List<long>>();
|
||||
@@ -92,6 +127,11 @@ public class ValueHistory(
|
||||
return allHistoricalValues;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the next value.
|
||||
/// </summary>
|
||||
/// <param name="backwards">if set to true will extrapolate next value backwards</param>
|
||||
/// <returns>The next value.</returns>
|
||||
public long CalculateNextValue(bool backwards = false)
|
||||
{
|
||||
var historicalValues = CalculateHistory();
|
||||
|
||||
Reference in New Issue
Block a user