diff --git a/.gitignore b/.gitignore index 5a8eceb..ae91b53 100644 --- a/.gitignore +++ b/.gitignore @@ -110,4 +110,8 @@ _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML -Thumbs.db \ No newline at end of file +Thumbs.db +.vs/HdrHistogram/v15/Server/sqlite3/storage.ide-wal +.vs/HdrHistogram/v15/Server/sqlite3/storage.ide-shm +.vs/HdrHistogram/v15/Server/sqlite3/storage.ide +.vs/HdrHistogram/v15/Server/sqlite3/db.lock diff --git a/HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj b/HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj index 6c73a2d..e669e22 100644 --- a/HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj +++ b/HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj @@ -2,14 +2,14 @@ Exe - net47;netcoreapp1.1 + net471;netcoreapp1.1 - + 0.10.8 diff --git a/HdrHistogram.Examples/HdrHistogram.Examples.csproj b/HdrHistogram.Examples/HdrHistogram.Examples.csproj index 27a8b15..a1e58fe 100644 --- a/HdrHistogram.Examples/HdrHistogram.Examples.csproj +++ b/HdrHistogram.Examples/HdrHistogram.Examples.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp1.1 + netcoreapp2.0 diff --git a/HdrHistogram.UnitTests/HdrHistogram.UnitTests.csproj b/HdrHistogram.UnitTests/HdrHistogram.UnitTests.csproj index 56d3a98..54df436 100644 --- a/HdrHistogram.UnitTests/HdrHistogram.UnitTests.csproj +++ b/HdrHistogram.UnitTests/HdrHistogram.UnitTests.csproj @@ -84,9 +84,10 @@ - - + + + diff --git a/HdrHistogram.UnitTests/HistogramEncodingTestBase.cs b/HdrHistogram.UnitTests/HistogramEncodingTestBase.cs index f5118ad..8ba7617 100644 --- a/HdrHistogram.UnitTests/HistogramEncodingTestBase.cs +++ b/HdrHistogram.UnitTests/HistogramEncodingTestBase.cs @@ -1,6 +1,8 @@ using HdrHistogram.Encoding; using HdrHistogram.Utilities; using Xunit; +using FluentAssertions; +using System.Linq; namespace HdrHistogram.UnitTests { @@ -21,6 +23,22 @@ public void Given_a_populated_Histogram_When_encoded_and_decoded_Then_data_is_pr HistogramAssert.AreValueEqual(source, result); } + [Fact] + public void Given_a_populated_Histogram_iterating_over_buckets_gives_all_buckets() + { + var source = Create(DefaultHighestTrackableValue, DefaultSignificantFigures); + Load(source); + Iteration.HistogramIterationValue lastSeen = null; + foreach ( var v in source.AllValues().ToList() ) + { + if ( lastSeen != null ) + { + v.Should().NotBe( lastSeen ); + } + lastSeen = v; + } + } + [Fact] public void Given_a_populated_Histogram_When_encoded_and_decoded_with_compression_Then_data_is_preserved() { diff --git a/HdrHistogram/Iteration/AbstractHistogramEnumerator.cs b/HdrHistogram/Iteration/AbstractHistogramEnumerator.cs index 88b6e5d..fc7137b 100644 --- a/HdrHistogram/Iteration/AbstractHistogramEnumerator.cs +++ b/HdrHistogram/Iteration/AbstractHistogramEnumerator.cs @@ -34,8 +34,13 @@ internal abstract class AbstractHistogramEnumerator : IEnumerator _current.Clone(); + private set => _current = value; + } protected AbstractHistogramEnumerator(HistogramBase histogram) { diff --git a/HdrHistogram/Iteration/HistogramIterationValue.cs b/HdrHistogram/Iteration/HistogramIterationValue.cs index 2dbbfaf..d9fad0d 100644 --- a/HdrHistogram/Iteration/HistogramIterationValue.cs +++ b/HdrHistogram/Iteration/HistogramIterationValue.cs @@ -103,5 +103,7 @@ public override string ToString() ", Percentile:" + Percentile + ", PercentileLevelIteratedTo:" + PercentileLevelIteratedTo; } + + public HistogramIterationValue Clone() => (HistogramIterationValue) this.MemberwiseClone(); } } diff --git a/README.md b/README.md index 0207db1..43c0395 100644 --- a/README.md +++ b/README.md @@ -255,6 +255,12 @@ Next can you please ensure that your PR (Pull Request) has a comment in it descr Ideally if it is fixing an issue or a bug, there would be a Unit Test proving the fix and a reference to the Issues in the PR comments. +### How to run tests? +If you are having trouble running xunit tests out of the box, it is possible to run them using a version of the command line below. +You'll just need to fill in the correct value of $(SolutionDir), which should be as defined in Visual Studio. +PS> dotnet C:\Users\%USERNAME%\.nuget\packages\xunit.runner.console\2.3.1\tools\netcoreapp2.0\xunit.console.dll $(SolutionDir)\HdrHistogram.UnitTests\bin\Debug\netcoreapp1.1\HdrHistogram.UnitTests.dll + + HdrHistogram Details ----------------------------------------------