From 851265fa1ce3a6fa25cafac34dfdd182c9ceed86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 1 Apr 2023 15:07:44 +0200 Subject: [PATCH 1/9] Added the possibility to format the logged message (#89) --- PeyrSharp.Env/Logger.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/PeyrSharp.Env/Logger.cs b/PeyrSharp.Env/Logger.cs index 6f7a7b9..16bd07f 100644 --- a/PeyrSharp.Env/Logger.cs +++ b/PeyrSharp.Env/Logger.cs @@ -51,5 +51,26 @@ public static void Log(string message, string filePath, DateTime dateTime) File.AppendAllText(filePath, $"[{dateTime}] {message}"); // Log } + + /// + /// Logs a formatted message to a file. + /// + /// The log message to be written. + /// The path to the log file. Must contain an extension. + /// An object array that contains zero or more objects to format. + public static void Log(string message, string filePath, params object[] formatString) + { + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + } + + if (!File.Exists(filePath)) + { + File.Create(filePath); // Create file + } + + File.AppendAllText(filePath, string.Format(message, formatString)); // Log + } } } From 1131619eecfbb3a62060565f243d6713685a825c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 1 Apr 2023 15:11:44 +0200 Subject: [PATCH 2/9] Added the ``LogLevel`` enumeration (#90) --- PeyrSharp.Enums/LogLevel.cs | 62 +++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 PeyrSharp.Enums/LogLevel.cs diff --git a/PeyrSharp.Enums/LogLevel.cs b/PeyrSharp.Enums/LogLevel.cs new file mode 100644 index 0000000..7d3f728 --- /dev/null +++ b/PeyrSharp.Enums/LogLevel.cs @@ -0,0 +1,62 @@ +/* +MIT License + +Copyright (c) Léo Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +namespace PeyrSharp.Enums +{ + /// + /// Specifies the severity level of a log message. + /// + public enum LogLevel + { + /// + /// Debug-level messages provide verbose information for debugging purposes. + /// + Debug, + + /// + /// Info-level messages provide informational messages about the application's state. + /// + Info, + + /// + /// Warning-level messages indicate a potential problem or non-critical issue. + /// + Warning, + + /// + /// Error-level messages indicate an error has occurred in the application. + /// + Error, + + /// + /// Critical-level messages indicate a critical error has occurred that requires immediate attention. + /// + Critical, + + /// + /// Misc-level messages are for miscellaneous use cases and are not defined in the logging specification. + /// + Misc + } +} From 735c43d581731032902797874f013df6879d3ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 1 Apr 2023 15:25:13 +0200 Subject: [PATCH 3/9] Added the possibility to generate a log message depending on the ``LogLevel`` (#91) --- PeyrSharp.Env/Logger.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/PeyrSharp.Env/Logger.cs b/PeyrSharp.Env/Logger.cs index 16bd07f..5b5a781 100644 --- a/PeyrSharp.Env/Logger.cs +++ b/PeyrSharp.Env/Logger.cs @@ -21,6 +21,7 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +using PeyrSharp.Enums; using System; using System.IO; @@ -72,5 +73,24 @@ public static void Log(string message, string filePath, params object[] formatSt File.AppendAllText(filePath, string.Format(message, formatString)); // Log } + + /// + /// Logs a message with the specified severity level, file path, and timestamp. + /// + /// The message to log. + /// The path to the file where the message was logged. + /// The timestamp for the log message. + /// The severity level for the log message. + public static void Log(string message, string filePath, DateTime dateTime, LogLevel logLevel) => Log($"[{LogLevelToString(logLevel)}] {message}", filePath, dateTime); + + private static string LogLevelToString(LogLevel level) => level switch + { + LogLevel.Error => "Error", + LogLevel.Warning => "Warning", + LogLevel.Info => "Info", + LogLevel.Critical => "Critical", + LogLevel.Debug => "Debug", + _ => "Misc" + }; } } From 5a5fb9a1c3af0035df71d136e0f09adf55be1d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 1 Apr 2023 15:29:52 +0200 Subject: [PATCH 4/9] Version 1.5.0.2304-pre1 --- PeyrSharp.Enums/PeyrSharp.Enums.csproj | 4 +++- PeyrSharp.Env/PeyrSharp.Env.csproj | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/PeyrSharp.Enums/PeyrSharp.Enums.csproj b/PeyrSharp.Enums/PeyrSharp.Enums.csproj index 68df1fd..5b82be3 100644 --- a/PeyrSharp.Enums/PeyrSharp.Enums.csproj +++ b/PeyrSharp.Enums/PeyrSharp.Enums.csproj @@ -11,13 +11,15 @@ https://peyrsharp.leocorporation.dev/ https://github.com/Leo-Corporation/PeyrSharp enums;c-sharp;dotnet;vb;peyrsharp;leo corp - 1.4.0.2303 + 1.5.0.2304-pre1 True logo.png NUGET_README.md True MIT git + - Added the ``LogLevel`` enumeration (#90) + diff --git a/PeyrSharp.Env/PeyrSharp.Env.csproj b/PeyrSharp.Env/PeyrSharp.Env.csproj index 9e9bdf1..2aa6755 100644 --- a/PeyrSharp.Env/PeyrSharp.Env.csproj +++ b/PeyrSharp.Env/PeyrSharp.Env.csproj @@ -4,7 +4,7 @@ net5.0;net6.0;net7.0 True PeyrSharp.Env - 1.4.0.2303 + 1.5.0.2304-pre1 Léo Corporation Environment-related methods of PeyrSharp. © 2023 @@ -31,6 +31,6 @@ - + From dee93dd2c3068a4070f8e37df12af481796b10dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sun, 2 Apr 2023 11:06:20 +0200 Subject: [PATCH 5/9] Added Mean() extension method for int[] and double[] (#92) --- PeyrSharp.Extensions/DoubleExtensions.cs | 24 ++++++++++++++++++++++++ PeyrSharp.Extensions/IntExtensions.cs | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/PeyrSharp.Extensions/DoubleExtensions.cs b/PeyrSharp.Extensions/DoubleExtensions.cs index 01df874..b476525 100644 --- a/PeyrSharp.Extensions/DoubleExtensions.cs +++ b/PeyrSharp.Extensions/DoubleExtensions.cs @@ -199,5 +199,29 @@ public static class DoubleExtensions /// The to convert. /// An value. public static int ToInt(this double d) => (int)Math.Round(d); + + /// + /// Calculates the mean (average) of a dataset. + /// + /// The dataset to calculate the mean of. + /// The mean of the dataset. + /// Thrown if the dataset is empty. + public static double Mean(this double[] values) + { + // Check for empty input + if (values.Length == 0) + { + throw new ArgumentException("Cannot calculate mean of empty dataset", "values"); + } + + // Calculate sum of values + double sum = values.Sum(); + + // Calculate mean + double mean = sum / values.Length; + + return mean; + } + } } diff --git a/PeyrSharp.Extensions/IntExtensions.cs b/PeyrSharp.Extensions/IntExtensions.cs index 12a7c3f..a675761 100644 --- a/PeyrSharp.Extensions/IntExtensions.cs +++ b/PeyrSharp.Extensions/IntExtensions.cs @@ -64,5 +64,29 @@ public static int[] GetDivisors(this int number) return ds.ToArray(); } + + /// + /// Calculates the mean (average) of a dataset. + /// + /// The dataset to calculate the mean of. + /// The mean of the dataset. + /// Thrown if the dataset is empty. + public static double Mean(this int[] values) + { + // Check for empty input + if (values.Length == 0) + { + throw new ArgumentException("Cannot calculate mean of empty dataset", "values"); + } + + // Calculate sum of values + double sum = values.Sum(); + + // Calculate mean + double mean = sum / values.Length; + + return mean; + } + } } From ad5731e055bb9caf57d381d997468e93bee79ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sun, 2 Apr 2023 11:06:59 +0200 Subject: [PATCH 6/9] Added Median() extension method for int[] and double[] (#93) --- PeyrSharp.Extensions/DoubleExtensions.cs | 36 ++++++++++++++++++++++++ PeyrSharp.Extensions/IntExtensions.cs | 36 ++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/PeyrSharp.Extensions/DoubleExtensions.cs b/PeyrSharp.Extensions/DoubleExtensions.cs index b476525..2bad1b7 100644 --- a/PeyrSharp.Extensions/DoubleExtensions.cs +++ b/PeyrSharp.Extensions/DoubleExtensions.cs @@ -23,6 +23,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ using PeyrSharp.Enums; using System; +using System.Linq; namespace PeyrSharp.Extensions { @@ -223,5 +224,40 @@ public static double Mean(this double[] values) return mean; } + /// + /// Calculates the median of a dataset. + /// + /// The dataset to calculate the median of. + /// The median of the dataset. + /// Thrown if the dataset is empty. + public static double Median(this double[] values) + { + // Check for empty input + if (values.Length == 0) + { + throw new ArgumentException("Cannot calculate median of empty dataset", "values"); + } + + // Sort values + var list = values.ToList(); + list.Sort(); + + // Calculate median + double median; + int n = list.Count; + if (n % 2 == 1) + { + // Odd number of elements + median = list[n / 2]; + } + else + { + // Even number of elements + median = (list[n / 2 - 1] + list[n / 2]) / 2; + } + + return median; + } + } } diff --git a/PeyrSharp.Extensions/IntExtensions.cs b/PeyrSharp.Extensions/IntExtensions.cs index a675761..33ff573 100644 --- a/PeyrSharp.Extensions/IntExtensions.cs +++ b/PeyrSharp.Extensions/IntExtensions.cs @@ -23,6 +23,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ using System; using System.Collections.Generic; +using System.Linq; namespace PeyrSharp.Extensions { @@ -88,5 +89,40 @@ public static double Mean(this int[] values) return mean; } + /// + /// Calculates the median of a dataset. + /// + /// The dataset to calculate the median of. + /// The median of the dataset. + /// Thrown if the dataset is empty. + public static double Median(this int[] values) + { + // Check for empty input + if (values.Length == 0) + { + throw new ArgumentException("Cannot calculate median of empty dataset", "values"); + } + + // Sort values + var list = values.ToList(); + list.Sort(); + + // Calculate median + double median; + int n = list.Count; + if (n % 2 == 1) + { + // Odd number of elements + median = list[n / 2]; + } + else + { + // Even number of elements + median = (list[n / 2 - 1] + list[n / 2]) / 2; + } + + return median; + } + } } From 52f8e55c3ff5ccf0454d696ba668af689d05e353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sun, 2 Apr 2023 11:07:25 +0200 Subject: [PATCH 7/9] Added Mode() extension method for int[] and double[] (#94) --- PeyrSharp.Extensions/DoubleExtensions.cs | 20 ++++++++++++++++++++ PeyrSharp.Extensions/IntExtensions.cs | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/PeyrSharp.Extensions/DoubleExtensions.cs b/PeyrSharp.Extensions/DoubleExtensions.cs index 2bad1b7..7000e78 100644 --- a/PeyrSharp.Extensions/DoubleExtensions.cs +++ b/PeyrSharp.Extensions/DoubleExtensions.cs @@ -259,5 +259,25 @@ public static double Median(this double[] values) return median; } + /// + /// Calculates the mode of a dataset. + /// + /// The dataset to calculate the mode of. + /// The mode of the dataset. + /// Thrown if the dataset is empty. + public static double Mode(this double[] values) + { + // Check for empty input + if (values.Length == 0) + { + throw new ArgumentException("Cannot calculate mode of empty dataset", "values"); + } + + // Group values by frequency + var frequencyGroups = values.GroupBy(x => x).OrderByDescending(g => g.Count()); + + // Return most common value (if more than one, return first) + return frequencyGroups.First().Key; + } } } diff --git a/PeyrSharp.Extensions/IntExtensions.cs b/PeyrSharp.Extensions/IntExtensions.cs index 33ff573..fb5ee29 100644 --- a/PeyrSharp.Extensions/IntExtensions.cs +++ b/PeyrSharp.Extensions/IntExtensions.cs @@ -124,5 +124,25 @@ public static double Median(this int[] values) return median; } + /// + /// Calculates the mode of a dataset. + /// + /// The dataset to calculate the mode of. + /// The mode of the dataset. + /// Thrown if the dataset is empty. + public static double Mode(this int[] values) + { + // Check for empty input + if (values.Length == 0) + { + throw new ArgumentException("Cannot calculate mode of empty dataset", "values"); + } + + // Group values by frequency + var frequencyGroups = values.GroupBy(x => x).OrderByDescending(g => g.Count()); + + // Return most common value (if more than one, return first) + return frequencyGroups.First().Key; + } } } From 1b46245183d4bc1f0115bb84c38f4e8aa9647014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sun, 2 Apr 2023 11:10:47 +0200 Subject: [PATCH 8/9] Version 1.5.0.2304-rc1 --- PeyrSharp.Env/PeyrSharp.Env.csproj | 3 ++- PeyrSharp.Extensions/PeyrSharp.Extensions.csproj | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/PeyrSharp.Env/PeyrSharp.Env.csproj b/PeyrSharp.Env/PeyrSharp.Env.csproj index 2aa6755..82eeade 100644 --- a/PeyrSharp.Env/PeyrSharp.Env.csproj +++ b/PeyrSharp.Env/PeyrSharp.Env.csproj @@ -16,7 +16,8 @@ NUGET_README.md MIT True - + - Added the possibility to format the logged message (#89) +- Added the possibility to generate a log message depending on the `LogLevel` (#91) diff --git a/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj b/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj index 302510f..e3afb3f 100644 --- a/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj +++ b/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj @@ -4,7 +4,7 @@ net5.0;net6.0;net7.0 True PeyrSharp.Extensions - 1.4.0.2303 + 1.5.0.2304-rc1 Léo Corporation Extensions methods of PeyrSharp. © 2023 @@ -16,7 +16,9 @@ NUGET_README.md MIT True - - Added the ``Reverse()`` extension method (string) (#78) + - Added Mean() extension method for int[] and double[] (#92) +- Added Median() extension method for int[] and double[] (#93) +- Added Mode() extension method for int[] and double[] (#94) From 4470599e27a676a2589793741193cb19f6a57a90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sun, 2 Apr 2023 12:31:05 +0200 Subject: [PATCH 9/9] Version 1.5.0.2304 --- PeyrSharp.Core/PeyrSharp.Core.csproj | 17 +++------- PeyrSharp.Enums/PeyrSharp.Enums.csproj | 2 +- PeyrSharp.Env/PeyrSharp.Env.csproj | 4 +-- .../PeyrSharp.Exceptions.csproj | 2 +- .../PeyrSharp.Extensions.csproj | 4 +-- .../PeyrSharp.UiHelpers.csproj | 4 +-- PeyrSharp/PeyrSharp.cs | 2 +- PeyrSharp/PeyrSharp.csproj | 31 ++++++++----------- 8 files changed, 26 insertions(+), 40 deletions(-) diff --git a/PeyrSharp.Core/PeyrSharp.Core.csproj b/PeyrSharp.Core/PeyrSharp.Core.csproj index 09c60ce..49e65cb 100644 --- a/PeyrSharp.Core/PeyrSharp.Core.csproj +++ b/PeyrSharp.Core/PeyrSharp.Core.csproj @@ -4,7 +4,7 @@ net5.0;net6.0;net7.0 True PeyrSharp.Core - 1.4.0.2303 + 1.5.0.2304 Léo Corporation Core methods and features of PeyrSharp. © 2023 @@ -16,16 +16,7 @@ NUGET_README.md MIT True - - Added `CaloriesToJoules()` method (#79) -- Added `JoulesToCalories()` method (#79) -- Added `KnotsToKilometersPerHour()` method (#80) -- Added `KilometersPerHourToKnots()` method (#80) -- Added `KnotsToMilesPerHour()` method (#81) -- Added `MilesPerHourToKnots()` method (#81) -- Added `KilometersPerHourToMetersPerSecond()` method (#82) -- Added `MetersPerSecondToKilometersPerHour()` method (#82) -- Added `MilesPerHourToKilometersPerHour()` (#83) -- Added `KilometersPerHourToMilesPerHour()` (#83) + @@ -40,8 +31,8 @@ - - + + diff --git a/PeyrSharp.Enums/PeyrSharp.Enums.csproj b/PeyrSharp.Enums/PeyrSharp.Enums.csproj index 5b82be3..043468f 100644 --- a/PeyrSharp.Enums/PeyrSharp.Enums.csproj +++ b/PeyrSharp.Enums/PeyrSharp.Enums.csproj @@ -11,7 +11,7 @@ https://peyrsharp.leocorporation.dev/ https://github.com/Leo-Corporation/PeyrSharp enums;c-sharp;dotnet;vb;peyrsharp;leo corp - 1.5.0.2304-pre1 + 1.5.0.2304 True logo.png NUGET_README.md diff --git a/PeyrSharp.Env/PeyrSharp.Env.csproj b/PeyrSharp.Env/PeyrSharp.Env.csproj index 82eeade..3c52383 100644 --- a/PeyrSharp.Env/PeyrSharp.Env.csproj +++ b/PeyrSharp.Env/PeyrSharp.Env.csproj @@ -4,7 +4,7 @@ net5.0;net6.0;net7.0 True PeyrSharp.Env - 1.5.0.2304-pre1 + 1.5.0.2304 Léo Corporation Environment-related methods of PeyrSharp. © 2023 @@ -32,6 +32,6 @@ - + diff --git a/PeyrSharp.Exceptions/PeyrSharp.Exceptions.csproj b/PeyrSharp.Exceptions/PeyrSharp.Exceptions.csproj index 3f49368..d8a7439 100644 --- a/PeyrSharp.Exceptions/PeyrSharp.Exceptions.csproj +++ b/PeyrSharp.Exceptions/PeyrSharp.Exceptions.csproj @@ -6,7 +6,7 @@ enable True PeyrSharp.Exceptions - 1.4.0.2303 + 1.5.0.2304 Léo Corporation Exceptions of PeyrSharp. © 2023 diff --git a/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj b/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj index e3afb3f..581117e 100644 --- a/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj +++ b/PeyrSharp.Extensions/PeyrSharp.Extensions.csproj @@ -4,7 +4,7 @@ net5.0;net6.0;net7.0 True PeyrSharp.Extensions - 1.5.0.2304-rc1 + 1.5.0.2304 Léo Corporation Extensions methods of PeyrSharp. © 2023 @@ -33,7 +33,7 @@ - + diff --git a/PeyrSharp.UiHelpers/PeyrSharp.UiHelpers.csproj b/PeyrSharp.UiHelpers/PeyrSharp.UiHelpers.csproj index 9e29c0d..024c7ec 100644 --- a/PeyrSharp.UiHelpers/PeyrSharp.UiHelpers.csproj +++ b/PeyrSharp.UiHelpers/PeyrSharp.UiHelpers.csproj @@ -8,7 +8,7 @@ true True PeyrSharp.UiHelpers - 1.4.0.2303 + 1.5.0.2304 Léo Corporation Useful helpers for Windows Forms and Windows Presentation Framework. © 2023 @@ -34,7 +34,7 @@ - + diff --git a/PeyrSharp/PeyrSharp.cs b/PeyrSharp/PeyrSharp.cs index e5ad02c..daac84b 100644 --- a/PeyrSharp/PeyrSharp.cs +++ b/PeyrSharp/PeyrSharp.cs @@ -32,6 +32,6 @@ public static class PeyrSharp /// /// The current version of PeyrSharp. /// - public static string Version => "1.4.0.2303"; + public static string Version => "1.5.0.2304"; } } diff --git a/PeyrSharp/PeyrSharp.csproj b/PeyrSharp/PeyrSharp.csproj index d690d43..ee71e8b 100644 --- a/PeyrSharp/PeyrSharp.csproj +++ b/PeyrSharp/PeyrSharp.csproj @@ -4,7 +4,7 @@ net5.0;net6.0;net5.0-windows;net6.0-windows;net7.0;net7.0-windows True PeyrSharp - 1.4.0.2303 + 1.5.0.2304 Léo Corporation © 2023 A C# library designed to make developers' job easier. @@ -16,17 +16,12 @@ NUGET_README.md MIT True - - Added the ``Reverse()`` extension method (string) (#78) -- Added `CaloriesToJoules()` method (#79) -- Added `JoulesToCalories()` method (#79) -- Added `KnotsToKilometersPerHour()` method (#80) -- Added `KilometersPerHourToKnots()` method (#80) -- Added `KnotsToMilesPerHour()` method (#81) -- Added `MilesPerHourToKnots()` method (#81) -- Added `KilometersPerHourToMetersPerSecond()` method (#82) -- Added `MetersPerSecondToKilometersPerHour()` method (#82) -- Added `MilesPerHourToKilometersPerHour()` (#83) -- Added `KilometersPerHourToMilesPerHour()` (#83) + - Added the possibility to format the logged message (#89) +- Added the LogLevel enumeration (#90) +- Added the possibility to generate a log message depending on the LogLevel (#91) +- Added Mean() extension method for int[] and double[] (#92) +- Added Median() extension method for int[] and double[] (#93) +- Added Mode() extension method for int[] and double[] (#94) @@ -41,12 +36,12 @@ - - - - - - + + + + + +