NExpect 2.0.42-2308161448.98b76da
Prefix ReservedSee the version list below for details.
dotnet add package NExpect --version 2.0.42-2308161448.98b76da
NuGet\Install-Package NExpect -Version 2.0.42-2308161448.98b76da
<PackageReference Include="NExpect" Version="2.0.42-2308161448.98b76da" />
<PackageVersion Include="NExpect" Version="2.0.42-2308161448.98b76da" />
<PackageReference Include="NExpect" />
paket add NExpect --version 2.0.42-2308161448.98b76da
#r "nuget: NExpect, 2.0.42-2308161448.98b76da"
#:package NExpect@2.0.42-2308161448.98b76da
#addin nuget:?package=NExpect&version=2.0.42-2308161448.98b76da&prerelease
#tool nuget:?package=NExpect&version=2.0.42-2308161448.98b76da&prerelease
NExpect
An assertions framework for .NET with a BDD-like feel, inspired by Chai and Jasmine, designed to be user-extensible
Goals
- Expect(NExpect).To.Be.Readable();
- Because code is for co-workers, not compilers. And your tests are part of your documentation.
- Expect(NExpect).To.Be.Expressive();
- Because the intent of a test should be easy to understand. The reader can delve into the details when she cares to.
- Expect(NExpect).To.Be.Extensible();
- Because I can't predict every use-case. I believe that your assertions framework should enable expressive, readable tests through extension.
Tutorial / blog posts:
https://fluffynuts.github.io/NExpect dev.to
Usage
- Download from nuget.org:
install-package nexpect
- Import Expectations statically:
using static NExpect.Expectations;
Expect
inside your tests, with fluent syntax:
// simple equality checks
Expect(1).To.Equal(1);
Expect(true).To.Not.Be.False(); // alt. grammar
Expect(null).To.Be.Null();
// - with negation, order doesn't matter
Expect("moo").Not.To.Equal("cow");
Expect("moo").To.Not.Equal("cow");
Expect(true).Not.To.Be.False();
Expect(false).To.Not.Be.True();
// exceptions
Expect(() => { }).Not.To.Throw();
Expect(() =>
{
throw new ArgumentException("moo", "moo cow");
}).To.Throw<ArgumentException>()
.With.Message.Containing("moo")
.And.("cow");
// smarter string tests, with fluency
Expect(someString).To.Contain("moo").And("cow");
Expect("moo, said the cow")
.To.Start.With("moo")
.And.Contain("said")
.Then("the")
.And.End.With("cow");
// collection tests
Expect(someCollection).To.Contain.Exactly(2)
.Matched.By(item => item.IsWhatWeWant());
Expect(someCollection).To.Contain.Only(1)
.Deep.Equal.To(new { id = 42, name = "Douglas" });
Expect(someFlags).To.Contain.At.Least(3)
.Equal.To(true);
Expect(new[] { 1, 2, 3 })
.To.Be.Ordered.Ascending();
Expect(new[] { "c", "b", "a" })
.To.Be.Ordered.Descending();
// type testing
Expect(someObject).To.Be
.An.Instance.Of<Cow>();
// deep and intersection equality testing
var person = new {
id = 1,
name = "bob"
};
Expect(person)
.To.Deep.Equal(new { id = 1, name = "bob" });
Expect(person)
.To.Intersection.Equal(new { name = "bob" });
Extending
Mostly, you can extend by adding extension methods for ICanAddMatcher<T> where T is the type you want. You can also extend at any point in the grammar -- some of the "better" points are ITo<T>, IBe<T>, IHave<T>, IA<T>, IAn<T>. You will need another namespace import:
using NExpect.MatcherLogic
And your extension methods can be like:
public static class MyMatchers
{
public static void Five(this IBe<int> continuation)
{
continuation.AddMatcher(actual =>
{
var passed = actual == 5;
var message = passed
? $"Expected {actual} not to be 5"
: $"Expected {actual} to be 5";
return new MatcherResult(passed, message);
});
}
}
// somewhere else...
[Test]
public void FifteenDividedByThree_ShouldEqual_Five()
{
var result = 15 / 3;
Expect(result).To.Be.Five();
}
// Yes, yes, simple example is simple.
If you've ever written a Jasmine matcher, this should feel familiar.
If you have a bunch of existing expectations that you'd like to wrap
up into a nicely-named matcher, .Compose
has you covered:
// before
var cow = animalFactory.MakeCow();
var beetle = animalFactory.MakeBeetle();
// animal factory should make a Jersey cow
Expect(cow.Classification).To.Equal("Mammal");
Expect(cow.Legs).To.Equal(4);
Expect(cow.HasTail).To.Be.True();
Expect(cow.HasHorns).To.Be.True();
Expect(cow.HasSpots).To.Be.True();
// Animal factory should make a rhinoceros beetle
Expect(beetle.Classification).To.Equal("Insect");
Expect(beetle.Legs).To.Equal(6);
Expect(beetle.HasTail).To.Be.False();
Expect(beetle.HasHorns).To.Be.True();
Expect(beetle.HasSpots).To.Be.False();
// after
var cow = animalFactory.MakeJerseyCow();
var beetle = animalFactory.MakeRhinocerosBeetle();
Expect(cow).To.Be.A.JerseyCow();
Expect(beetle).To.Be.A.RhinocerosBeetle();
// elsewhere:
public static class AnimalMatchers
{
// the IMore<T> interface allows fluent chaining of expectations
// eg:
// Expect(cow).To.Be.A.JerseyCow()
// .And
// .Not.To.Be.A.FrieslandCow();
public static IMore<Animal> JerseyCow(this IA<Animal> a)
{
return a.Compose(actual =>
{
Expect(cow.Classification).To.Equal("Mammal");
Expect(cow.Legs).To.Equal(4);
Expect(cow.HasTail).To.Be.True();
Expect(cow.HasHorns).To.Be.True();
Expect(cow.HasSpots).To.Be.True();
});
}
public static IMore<Animal> RhinocerosBeetle(this IA<Animal> a)
{
return a.Compose(actual =>
{
Expect(beetle.Classification).To.Equal("Insect");
Expect(beetle.Legs).To.Equal(6);
Expect(beetle.HasTail).To.Be.False();
Expect(beetle.HasHorns).To.Be.True();
Expect(beetle.HasSpots).To.Be.False();
});
}
}
When one of the inner expectations fails, NExpect attempts to construct a nice failure message. As with all expectations, you can always make failures easier to understand with a custom message string or generator:
using NExpect.Implementations;
using NExpect.MatcherLogic;
using NExpect;
using static NExpect.Expectations;
public static class AnimalMatchers
{
public static IMore<Animal> JerseyCow(this IA<Animal> a)
{
return a.Compose(actual =>
{
// the Stringify extension method, available on all types,
// comes from NExpect.Implementation.MessageHelpers and
// produces a string representation of the object it's
// operating on which is similar to JSON, so it's easier
// to read what the object was
var customMessage = $"Expected {actual.Stringify()} to be a cow";
Expect(cow.Classification).To.Equal("Mammal", customMessage);
Expect(cow.Legs).To.Equal(4, customMessage);
Expect(cow.HasTail).To.Be.True(customMessage);
Expect(cow.HasHorns).To.Be.True(customMessage);
Expect(cow.HasSpots).To.Be.True(customMessage);
});
}
public static IMore<Animal> RhinocerosBeetle(this IA<Animal> a)
{
return a.Compose(actual =>
{
// we can use a generator func to delay generation of the message
// which is especially helpful if message generation is expensive
// and we'd only like to spend that cpu time on a failure
Func<string> customMessageGenerator = () => $"Expected {actual.Stringify()} to be a cow";
Expect(beetle.Classification).To.Equal("Insect", customMessageGenerator);
Expect(beetle.Legs).To.Equal(6, customMessageGenerator);
Expect(beetle.HasTail).To.Be.False(customMessageGenerator);
Expect(beetle.HasHorns).To.Be.True(customMessageGenerator);
Expect(beetle.HasSpots).To.Be.False(customMessageGenerator);
});
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
NuGet packages (6)
Showing the top 5 NuGet packages that depend on NExpect:
Package | Downloads |
---|---|
NExpect.Matchers.NSubstitute
This library offers NSubistitute-specific extensions so you can have Expect-style syntax for your NSubstitute assertions. For example, one may previously have done: ``` Expect(result).To.Equal(expected); someService.Received(1).SomeMethodCall(); ``` and now you can keep it consistent: ``` Expect(result).To.Equal(expected); Expect(someService).To.Have.Received(1).SomeMethodCall(); ``` |
|
NExpect.Matchers.AspNetCore
This library adds ASP.Net core extensions for NExpect so you can test your [Route] and [Http*] annotations like so: ``` Expect(typeof(SomeController) .To.Have.Method(nameof(SomeController.MethodName)) .Supporting(HttpMethod.Delete) .And(HttpMethod.Post) .With.Route("first-route") .And.Route("second-route"); ``` |
|
NExpect.Matchers.Xml
This library offers XML-specific assertions so you can, for instance: ``` var doc = XDocument.Parse(someXml); Expect(doc) .To.Have.Element("//path/to/element") .With.Attribute("some-attribute") .Having.Value("expected-attribute-value"); ``` |
|
NExpect.Matchers.AspNetMvc
This library adds ASP.Net core extensions for NExpect so you can test your [Route] and [Http*] annotations like so: ``` Expect(typeof(SomeController) .To.Have.Method(nameof(SomeController.MethodName)) .Supporting(HttpMethod.Delete) .And(HttpMethod.Post) .With.Route("first-route") .And.Route("second-route"); ``` |
|
NExpect.NSubstitute
NSubstitute extensions for NExpect so you can: ``` Expect(foo).(Not).To.Have.Received().Method(..); ``` |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on NExpect:
Repository | Stars |
---|---|
clojure/clojure-clr
A port of Clojure to the CLR, part of the Clojure project
|
|
Rohland/htmldiff.net
Html Diff algorithm for .NET
|
|
fluffynuts/PeanutButter
Tasty, versatile, nutritious; goes with many things in .net.
|
Version | Downloads | Last Updated | |
---|---|---|---|
2.0.123 | 0 | 9/17/2025 | |
2.0.122 | 78 | 9/16/2025 | |
2.0.121 | 226 | 9/11/2025 | |
2.0.120 | 304 | 9/9/2025 | |
2.0.119 | 272 | 8/12/2025 | |
2.0.118 | 277 | 8/6/2025 | |
2.0.117 | 282 | 7/15/2025 | |
2.0.116 | 4,849 | 3/24/2025 | |
2.0.115 | 756 | 2/25/2025 | |
2.0.114 | 305 | 2/13/2025 | |
2.0.113 | 175 | 2/12/2025 | |
2.0.112 | 181 | 2/12/2025 | |
2.0.111 | 3,341 | 12/17/2024 | |
2.0.110 | 2,436 | 11/13/2024 | |
2.0.109 | 243 | 11/1/2024 | |
2.0.108 | 357 | 10/23/2024 | |
2.0.107 | 213 | 10/23/2024 | |
2.0.106 | 228 | 10/22/2024 | |
2.0.105 | 1,976 | 9/11/2024 | |
2.0.104 | 966 | 8/30/2024 | |
2.0.103 | 252 | 8/30/2024 | |
2.0.102 | 2,214 | 6/19/2024 | |
2.0.101 | 252 | 6/11/2024 | |
2.0.100 | 308 | 6/10/2024 | |
2.0.99 | 295 | 6/5/2024 | |
2.0.98 | 221 | 6/3/2024 | |
2.0.97 | 195 | 6/3/2024 | |
2.0.96 | 209 | 6/3/2024 | |
2.0.95 | 373 | 5/17/2024 | |
2.0.94 | 825 | 5/17/2024 | |
2.0.93 | 262 | 5/17/2024 | |
2.0.92 | 470 | 4/29/2024 | |
2.0.91 | 1,076 | 4/17/2024 | |
2.0.90 | 257 | 4/15/2024 | |
2.0.89 | 259 | 4/8/2024 | |
2.0.88 | 252 | 4/5/2024 | |
2.0.87 | 220 | 4/5/2024 | |
2.0.86 | 247 | 4/5/2024 | |
2.0.85 | 224 | 4/5/2024 | |
2.0.84 | 231 | 4/4/2024 | |
2.0.83 | 738 | 4/3/2024 | |
2.0.82 | 883 | 4/2/2024 | |
2.0.81 | 588 | 3/13/2024 | |
2.0.80 | 232 | 3/13/2024 | |
2.0.79 | 317 | 3/11/2024 | |
2.0.78 | 335 | 3/5/2024 | |
2.0.77 | 395 | 2/27/2024 | |
2.0.76 | 247 | 2/26/2024 | |
2.0.75 | 327 | 2/22/2024 | |
2.0.74 | 271 | 2/22/2024 | |
2.0.73 | 290 | 2/19/2024 | |
2.0.72 | 251 | 2/15/2024 | |
2.0.71 | 486 | 2/13/2024 | |
2.0.70 | 380 | 2/13/2024 | |
2.0.69 | 758 | 2/7/2024 | |
2.0.68 | 273 | 2/6/2024 | |
2.0.67 | 323 | 2/5/2024 | |
2.0.66 | 273 | 2/2/2024 | |
2.0.65 | 890 | 1/30/2024 | |
2.0.64 | 415 | 1/18/2024 | |
2.0.63 | 736 | 1/15/2024 | |
2.0.62 | 251 | 1/12/2024 | |
2.0.61 | 217 | 1/12/2024 | |
2.0.60 | 290 | 1/10/2024 | |
2.0.59 | 295 | 1/9/2024 | |
2.0.58 | 1,063 | 12/13/2023 | |
2.0.57 | 924 | 11/28/2023 | |
2.0.56 | 286 | 11/28/2023 | |
2.0.55 | 9,324 | 11/17/2023 | |
2.0.54 | 328 | 11/17/2023 | |
2.0.53 | 277 | 11/17/2023 | |
2.0.52 | 1,005 | 10/30/2023 | |
2.0.51 | 356 | 10/26/2023 | |
2.0.50 | 857 | 10/12/2023 | |
2.0.49 | 2,902 | 9/28/2023 | |
2.0.48 | 613 | 9/22/2023 | |
2.0.47 | 263 | 9/21/2023 | |
2.0.46 | 319 | 9/20/2023 | |
2.0.45 | 467 | 9/14/2023 | |
2.0.44 | 268 | 9/14/2023 | |
2.0.43 | 831 | 8/25/2023 | |
2.0.42 | 289 | 8/25/2023 | |
2.0.42-2308241227.f6c25ee | 115 | 8/24/2023 | |
2.0.42-2308161448.98b76da | 114 | 8/16/2023 | |
2.0.42-2308161446.ec7a107 | 112 | 8/16/2023 | |
2.0.42-2308161429.74c00e2 | 116 | 8/16/2023 | |
2.0.41 | 632 | 8/14/2023 | |
2.0.40 | 596 | 8/4/2023 | |
2.0.39 | 351 | 8/4/2023 | |
2.0.38 | 309 | 8/4/2023 | |
2.0.37 | 325 | 8/4/2023 | |
2.0.36 | 348 | 8/4/2023 | |
2.0.35 | 306 | 8/4/2023 | |
2.0.34 | 1,065 | 6/22/2023 | |
2.0.33 | 348 | 6/22/2023 | |
2.0.32 | 354 | 6/22/2023 | |
2.0.32-2306210815 | 95 | 6/21/2023 | |
2.0.32-2306210812 | 69 | 6/21/2023 | |
2.0.32-2306151149.332886a | 136 | 6/15/2023 | |
2.0.32-2306151140.93d85dc | 132 | 6/15/2023 | |
2.0.32-2306150947.3b80752 | 132 | 6/15/2023 | |
2.0.31 | 489 | 6/12/2023 | |
2.0.30 | 579 | 6/9/2023 | |
2.0.30-2306091428.6fc0bd3 | 168 | 6/9/2023 | |
2.0.30-2306091304.51d4d0b | 135 | 6/9/2023 | |
2.0.30-2306091204.1fe4d76 | 133 | 6/9/2023 | |
2.0.30-2306090857.5be3155 | 139 | 6/9/2023 | |
2.0.30-2306081701.3a525ef | 133 | 6/8/2023 | |
2.0.30-2306081646.5a15be2 | 143 | 6/8/2023 | |
2.0.30-2306081628.68f2d91 | 135 | 6/8/2023 | |
2.0.30-2306081611.3c4f19f | 137 | 6/8/2023 | |
2.0.30-2306081557.4fa2105 | 131 | 6/8/2023 | |
2.0.30-2306081119.fdddf3b | 139 | 6/8/2023 | |
2.0.30-2306081053.68ba9f2 | 132 | 6/8/2023 | |
2.0.30-2306080900.1b126b1 | 134 | 6/8/2023 | |
2.0.29 | 1,009 | 5/23/2023 | |
2.0.28 | 513 | 5/18/2023 | |
2.0.27 | 453 | 5/12/2023 | |
2.0.26 | 422 | 5/12/2023 | |
2.0.25 | 541 | 4/26/2023 | |
2.0.24 | 11,363 | 2/1/2023 | |
2.0.23 | 757 | 1/30/2023 | |
2.0.22 | 969 | 1/26/2023 | |
2.0.21 | 772 | 1/25/2023 | |
2.0.20 | 884 | 1/25/2023 | |
2.0.19 | 2,131 | 11/30/2022 | |
2.0.18 | 1,654 | 11/14/2022 | |
2.0.17 | 4,906 | 10/19/2022 | |
2.0.16 | 1,375 | 10/17/2022 | |
2.0.15 | 1,297 | 10/17/2022 | |
2.0.14 | 1,936 | 10/3/2022 | |
2.0.13 | 1,319 | 10/3/2022 | |
2.0.12 | 1,381 | 10/3/2022 | |
2.0.11 | 1,422 | 9/27/2022 | |
2.0.10 | 1,532 | 9/20/2022 | |
2.0.9 | 1,515 | 9/19/2022 | |
2.0.8 | 1,511 | 9/15/2022 | |
2.0.7 | 1,510 | 9/14/2022 | |
2.0.6 | 1,380 | 9/13/2022 | |
2.0.5 | 1,400 | 9/13/2022 | |
2.0.4 | 1,413 | 9/13/2022 | |
2.0.3 | 1,451 | 9/9/2022 | |
2.0.2 | 1,357 | 9/9/2022 | |
2.0.1 | 1,400 | 9/9/2022 | |
1.0.276 | 79,291 | 8/17/2022 | |
1.0.275 | 1,427 | 8/17/2022 | |
1.0.274 | 2,282 | 7/28/2022 | |
1.0.273 | 5,743 | 7/14/2022 | |
1.0.272 | 1,526 | 7/14/2022 | |
1.0.271 | 1,488 | 7/13/2022 | |
1.0.270 | 1,706 | 7/7/2022 | |
1.0.269 | 1,472 | 7/7/2022 | |
1.0.268 | 2,067 | 6/20/2022 | |
1.0.267 | 1,640 | 6/14/2022 | |
1.0.266 | 1,753 | 6/9/2022 | |
1.0.265 | 3,067 | 5/27/2022 | |
1.0.264 | 1,635 | 5/24/2022 | |
1.0.263 | 1,478 | 5/23/2022 | |
1.0.262 | 1,610 | 5/17/2022 | |
1.0.261 | 1,477 | 5/16/2022 | |
1.0.260 | 1,486 | 5/16/2022 | |
1.0.259 | 1,943 | 5/6/2022 | |
1.0.258 | 1,504 | 5/5/2022 | |
1.0.257 | 1,474 | 5/5/2022 | |
1.0.256 | 1,468 | 5/4/2022 | |
1.0.255 | 1,510 | 5/4/2022 | |
1.0.254 | 2,283 | 4/5/2022 | |
1.0.253 | 1,542 | 4/5/2022 | |
1.0.252 | 1,499 | 4/4/2022 | |
1.0.251 | 1,698 | 3/22/2022 | |
1.0.250 | 3,170 | 2/3/2022 | |
1.0.249 | 1,574 | 1/28/2022 | |
1.0.248 | 1,883 | 1/27/2022 | |
1.0.247 | 1,555 | 1/26/2022 | |
1.0.246 | 1,520 | 1/25/2022 | |
1.0.245 | 1,513 | 1/18/2022 | |
1.0.244 | 1,500 | 1/18/2022 | |
1.0.243 | 1,360 | 1/12/2022 | |
1.0.242 | 1,212 | 12/10/2021 | |
1.0.241 | 945 | 12/10/2021 | |
1.0.240 | 945 | 12/10/2021 | |
1.0.239 | 1,075 | 12/6/2021 | |
1.0.238 | 1,419 | 12/6/2021 | |
1.0.236 | 956 | 12/2/2021 | |
1.0.235 | 1,007 | 12/2/2021 | |
1.0.234 | 964 | 12/2/2021 | |
1.0.233 | 1,201 | 11/18/2021 | |
1.0.232 | 967 | 11/18/2021 | |
1.0.231 | 1,213 | 11/9/2021 | |
1.0.230 | 1,092 | 11/9/2021 | |
1.0.227 | 1,213 | 10/14/2021 | |
1.0.226 | 1,341 | 9/2/2021 | |
1.0.225 | 976 | 8/31/2021 | |
1.0.224 | 1,007 | 8/30/2021 | |
1.0.223 | 1,131 | 8/6/2021 | |
1.0.222 | 994 | 8/6/2021 | |
1.0.221 | 1,002 | 8/6/2021 | |
1.0.220 | 1,019 | 8/3/2021 | |
1.0.219 | 1,081 | 7/30/2021 | |
1.0.218 | 1,138 | 7/7/2021 | |
1.0.217 | 939 | 7/7/2021 | |
1.0.216 | 969 | 7/7/2021 | |
1.0.215 | 995 | 7/6/2021 | |
1.0.214 | 1,000 | 7/6/2021 | |
1.0.213 | 945 | 7/6/2021 | |
1.0.212 | 28,464 | 5/14/2021 | |
1.0.211 | 968 | 5/11/2021 | |
1.0.210 | 956 | 5/11/2021 | |
1.0.209 | 906 | 5/11/2021 | |
1.0.208 | 893 | 5/11/2021 | |
1.0.207 | 1,243 | 5/3/2021 | |
1.0.206 | 1,046 | 5/3/2021 | |
1.0.205 | 981 | 5/3/2021 | |
1.0.204 | 931 | 5/3/2021 | |
1.0.203 | 965 | 4/15/2021 | |
1.0.202 | 961 | 4/15/2021 | |
1.0.201 | 915 | 4/15/2021 | |
1.0.200 | 922 | 4/15/2021 | |
1.0.199 | 924 | 4/14/2021 | |
1.0.198 | 1,107 | 3/19/2021 | |
1.0.197 | 967 | 3/9/2021 | |
1.0.196 | 975 | 3/9/2021 | |
1.0.195 | 955 | 3/9/2021 | |
1.0.194 | 1,036 | 3/9/2021 | |
1.0.193 | 1,046 | 3/9/2021 | |
1.0.192 | 1,062 | 3/9/2021 | |
1.0.191 | 1,058 | 2/12/2021 | |
1.0.190 | 1,110 | 1/21/2021 | |
1.0.189 | 1,106 | 1/21/2021 | |
1.0.188 | 1,000 | 1/21/2021 | |
1.0.187 | 981 | 1/21/2021 | |
1.0.186 | 1,315 | 1/8/2021 | |
1.0.185 | 1,039 | 1/8/2021 | |
1.0.184 | 5,244 | 11/13/2020 | |
1.0.183 | 995 | 11/13/2020 | |
1.0.182 | 1,028 | 11/13/2020 | |
1.0.181 | 1,428 | 10/13/2020 | |
1.0.180 | 1,168 | 10/12/2020 | |
1.0.179 | 1,252 | 8/31/2020 | |
1.0.178 | 3,773 | 8/4/2020 | |
1.0.177 | 1,160 | 7/21/2020 | |
1.0.176 | 1,077 | 7/10/2020 | |
1.0.175 | 1,139 | 7/10/2020 | |
1.0.174 | 3,695 | 5/20/2020 | |
1.0.173 | 1,154 | 5/20/2020 | |
1.0.172 | 1,222 | 5/20/2020 | |
1.0.171 | 1,203 | 5/8/2020 | |
1.0.170 | 2,143 | 4/9/2020 | |
1.0.169 | 1,271 | 4/3/2020 | |
1.0.168 | 1,175 | 3/25/2020 | |
1.0.167 | 1,294 | 3/23/2020 | |
1.0.166 | 1,308 | 2/6/2020 | |
1.0.165 | 1,316 | 12/30/2019 | |
1.0.164 | 1,185 | 12/28/2019 | |
1.0.163 | 1,162 | 12/28/2019 | |
1.0.162 | 1,555 | 12/5/2019 | |
1.0.161 | 1,144 | 12/5/2019 | |
1.0.160 | 1,556 | 11/20/2019 | |
1.0.159 | 1,831 | 10/14/2019 | |
1.0.158 | 820 | 10/13/2019 | |
1.0.157 | 1,291 | 10/3/2019 | |
1.0.156 | 1,208 | 9/17/2019 | |
1.0.155 | 1,207 | 9/15/2019 | |
1.0.154 | 2,901 | 6/20/2019 | |
1.0.153 | 1,873 | 6/20/2019 | |
1.0.152 | 2,079 | 6/6/2019 | |
1.0.151 | 1,904 | 6/4/2019 | |
1.0.150 | 1,927 | 5/25/2019 | |
1.0.149 | 1,872 | 5/23/2019 | |
1.0.148 | 1,871 | 5/16/2019 | |
1.0.147 | 1,904 | 5/16/2019 | |
1.0.146 | 1,645 | 5/16/2019 | |
1.0.145 | 1,593 | 5/16/2019 | |
1.0.143 | 3,120 | 5/14/2019 | |
1.0.142 | 1,797 | 5/13/2019 | |
1.0.141 | 1,538 | 5/7/2019 | |
1.0.140 | 1,614 | 4/16/2019 | |
1.0.139 | 1,595 | 4/16/2019 | |
1.0.138 | 1,514 | 4/16/2019 | |
1.0.137 | 1,447 | 4/16/2019 | |
1.0.136 | 1,663 | 1/9/2019 | |
1.0.135 | 6,397 | 12/12/2018 | |
1.0.134 | 1,608 | 12/12/2018 | |
1.0.132 | 1,854 | 8/11/2018 | |
1.0.131 | 1,882 | 7/31/2018 | |
1.0.130 | 1,882 | 7/25/2018 | |
1.0.129 | 1,853 | 7/24/2018 | |
1.0.128 | 1,873 | 7/19/2018 | |
1.0.127 | 2,039 | 7/4/2018 | |
1.0.126 | 2,077 | 6/20/2018 | |
1.0.125 | 2,078 | 6/19/2018 | |
1.0.124 | 2,131 | 5/24/2018 | |
1.0.123 | 2,066 | 5/18/2018 | |
1.0.122 | 2,238 | 5/17/2018 | |
1.0.121 | 2,210 | 4/29/2018 | |
1.0.120 | 2,187 | 4/29/2018 | |
1.0.119 | 2,142 | 4/27/2018 | |
1.0.118 | 2,118 | 4/26/2018 | |
1.0.117 | 2,103 | 4/26/2018 | |
1.0.116 | 2,080 | 4/25/2018 | |
1.0.115 | 1,868 | 4/23/2018 | |
1.0.114 | 2,118 | 4/12/2018 | |
1.0.113 | 2,170 | 4/11/2018 | |
1.0.112 | 2,041 | 4/4/2018 | |
1.0.111 | 2,112 | 4/3/2018 | |
1.0.110 | 2,116 | 4/2/2018 | |
1.0.109 | 2,120 | 3/29/2018 | |
1.0.108 | 2,111 | 3/28/2018 | |
1.0.107 | 2,127 | 3/22/2018 | |
1.0.106 | 2,141 | 3/22/2018 | |
1.0.105 | 2,289 | 2/28/2018 | |
1.0.104 | 2,201 | 2/26/2018 | |
1.0.103 | 2,132 | 2/25/2018 | |
1.0.102 | 2,122 | 2/24/2018 | |
1.0.101 | 1,880 | 2/23/2018 | |
1.0.100 | 2,300 | 2/23/2018 | |
1.0.99 | 2,183 | 1/16/2018 | |
1.0.98 | 2,184 | 12/20/2017 | |
1.0.97 | 2,156 | 12/10/2017 | |
1.0.96 | 2,100 | 12/7/2017 | |
1.0.95 | 2,135 | 12/7/2017 | |
1.0.94 | 1,912 | 12/6/2017 | |
1.0.93 | 2,170 | 12/6/2017 | |
1.0.92 | 1,973 | 11/30/2017 | |
1.0.91 | 1,922 | 11/30/2017 | |
1.0.90 | 1,920 | 11/28/2017 | |
1.0.89 | 1,877 | 11/28/2017 | |
1.0.88 | 2,165 | 10/18/2017 | |
1.0.87 | 2,126 | 10/16/2017 | |
1.0.86 | 2,114 | 10/16/2017 | |
1.0.85 | 2,167 | 10/15/2017 | |
1.0.84 | 2,158 | 10/6/2017 | |
1.0.83 | 2,168 | 10/6/2017 | |
1.0.82 | 2,156 | 10/5/2017 | |
1.0.81 | 2,161 | 10/4/2017 | |
1.0.80 | 2,191 | 9/30/2017 | |
1.0.79 | 2,394 | 9/28/2017 | |
1.0.78 | 2,097 | 9/27/2017 | |
1.0.77 | 2,127 | 9/26/2017 | |
1.0.76 | 2,109 | 9/26/2017 | |
1.0.75 | 2,137 | 9/26/2017 | |
1.0.74 | 2,097 | 9/26/2017 | |
1.0.73 | 2,106 | 9/26/2017 | |
1.0.72 | 2,184 | 9/21/2017 | |
1.0.71 | 2,173 | 9/20/2017 | |
1.0.70 | 2,118 | 9/20/2017 | |
1.0.69 | 2,140 | 9/20/2017 | |
1.0.68 | 2,127 | 9/20/2017 | |
1.0.67 | 2,125 | 9/18/2017 | |
1.0.66 | 2,183 | 9/18/2017 | |
1.0.65 | 2,146 | 9/18/2017 | |
1.0.64 | 2,147 | 9/18/2017 | |
1.0.63 | 2,128 | 9/17/2017 | |
1.0.62 | 2,110 | 9/17/2017 | |
1.0.61 | 2,143 | 9/17/2017 | |
1.0.60 | 2,176 | 9/15/2017 | |
1.0.59 | 2,166 | 9/15/2017 | |
1.0.58 | 2,152 | 9/12/2017 | |
1.0.57 | 2,111 | 9/12/2017 | |
1.0.56 | 2,149 | 9/12/2017 | |
1.0.55 | 2,157 | 9/12/2017 | |
1.0.54 | 2,127 | 9/12/2017 | |
1.0.53 | 2,146 | 9/11/2017 | |
1.0.52 | 2,138 | 9/11/2017 | |
1.0.51 | 2,124 | 9/8/2017 | |
1.0.50 | 2,142 | 9/8/2017 | |
1.0.49 | 2,169 | 9/6/2017 | |
1.0.48 | 2,149 | 9/6/2017 | |
1.0.47 | 2,149 | 9/5/2017 | |
1.0.46 | 2,165 | 9/5/2017 | |
1.0.45 | 2,144 | 9/1/2017 | |
1.0.44 | 2,146 | 8/31/2017 | |
1.0.43 | 2,170 | 8/31/2017 | |
1.0.42 | 2,166 | 8/31/2017 | |
1.0.41 | 2,156 | 8/31/2017 | |
1.0.40 | 2,181 | 8/31/2017 | |
1.0.39 | 2,208 | 8/30/2017 | |
1.0.38 | 1,940 | 8/28/2017 | |
1.0.37 | 1,975 | 8/22/2017 | |
1.0.36 | 1,948 | 8/22/2017 | |
1.0.35 | 1,932 | 8/22/2017 | |
1.0.34 | 1,917 | 8/21/2017 | |
1.0.33 | 1,918 | 8/17/2017 | |
1.0.32 | 1,969 | 8/16/2017 | |
1.0.31 | 1,955 | 8/16/2017 | |
1.0.30 | 1,938 | 8/15/2017 | |
1.0.29 | 1,931 | 8/15/2017 | |
1.0.28 | 1,990 | 8/15/2017 | |
1.0.27 | 2,002 | 8/14/2017 | |
1.0.26 | 1,919 | 8/11/2017 | |
1.0.25 | 1,932 | 8/11/2017 | |
1.0.24 | 1,910 | 8/9/2017 | |
1.0.21 | 1,928 | 8/7/2017 | |
1.0.19 | 1,982 | 8/7/2017 | |
1.0.17 | 1,973 | 8/7/2017 | |
1.0.15 | 1,960 | 8/4/2017 | |
1.0.13 | 1,945 | 8/4/2017 | |
1.0.11 | 1,961 | 8/3/2017 | |
1.0.9 | 1,972 | 7/23/2017 | |
1.0.8 | 1,949 | 7/23/2017 | |
1.0.7 | 1,939 | 7/23/2017 | |
1.0.6 | 1,943 | 7/23/2017 | |
1.0.5 | 1,958 | 7/22/2017 | |
1.0.4 | 1,967 | 7/22/2017 | |
1.0.3 | 1,950 | 7/22/2017 | |
1.0.1 | 2,068 | 7/21/2017 | |
1.0.0 | 1,981 | 7/20/2017 |