NExpect 2.0.119

Prefix Reserved
dotnet add package NExpect --version 2.0.119
                    
NuGet\Install-Package NExpect -Version 2.0.119
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NExpect" Version="2.0.119" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NExpect" Version="2.0.119" />
                    
Directory.Packages.props
<PackageReference Include="NExpect" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NExpect --version 2.0.119
                    
#r "nuget: NExpect, 2.0.119"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NExpect@2.0.119
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NExpect&version=2.0.119
                    
Install as a Cake Addin
#tool nuget:?package=NExpect&version=2.0.119
                    
Install as a Cake Tool

NExpect

An assertions framework for .NET with a BDD-like feel, inspired by Chai and Jasmine, designed to be user-extensible

Build and Test

Nuget current version badge

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

  1. Download from nuget.org: install-package nexpect
  2. Import Expectations statically:
using static NExpect.Expectations;
  1. 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" });

// deep equality testing with excluded props
Expect(person)
    .To.Deep.Equal(new { id = 1, name = "sarah" }, exclude: [ "name" ]);  
// or
Expect(person)
    .Omitting("name")
    .To.Deep.Equal(new { id = 1, name = "sipho" });

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.119 85 8/12/2025
2.0.118 171 8/6/2025
2.0.117 185 7/15/2025
2.0.116 3,483 3/24/2025
2.0.115 692 2/25/2025
2.0.114 298 2/13/2025
2.0.113 168 2/12/2025
2.0.112 173 2/12/2025
2.0.111 3,132 12/17/2024
2.0.110 2,262 11/13/2024
2.0.109 235 11/1/2024
2.0.108 346 10/23/2024
2.0.107 206 10/23/2024
2.0.106 220 10/22/2024
2.0.105 1,963 9/11/2024
2.0.104 960 8/30/2024
2.0.103 242 8/30/2024 2.0.103 is deprecated.
2.0.102 2,205 6/19/2024
2.0.101 247 6/11/2024
2.0.100 302 6/10/2024
2.0.99 289 6/5/2024
2.0.98 215 6/3/2024
2.0.97 188 6/3/2024
2.0.96 203 6/3/2024
2.0.95 367 5/17/2024
2.0.94 817 5/17/2024
2.0.93 256 5/17/2024
2.0.92 463 4/29/2024
2.0.91 1,066 4/17/2024
2.0.90 251 4/15/2024
2.0.89 252 4/8/2024
2.0.88 246 4/5/2024
2.0.87 210 4/5/2024
2.0.86 240 4/5/2024
2.0.85 215 4/5/2024
2.0.84 224 4/4/2024
2.0.83 731 4/3/2024
2.0.82 875 4/2/2024
2.0.81 576 3/13/2024
2.0.80 226 3/13/2024 2.0.80 is deprecated.
2.0.79 307 3/11/2024
2.0.78 327 3/5/2024
2.0.77 389 2/27/2024
2.0.76 240 2/26/2024
2.0.75 319 2/22/2024
2.0.74 259 2/22/2024
2.0.73 282 2/19/2024
2.0.72 245 2/15/2024
2.0.71 480 2/13/2024
2.0.70 374 2/13/2024
2.0.69 721 2/7/2024
2.0.68 266 2/6/2024
2.0.67 317 2/5/2024
2.0.66 267 2/2/2024
2.0.65 884 1/30/2024
2.0.64 407 1/18/2024
2.0.63 727 1/15/2024
2.0.62 245 1/12/2024
2.0.61 210 1/12/2024
2.0.60 283 1/10/2024
2.0.59 288 1/9/2024
2.0.58 1,058 12/13/2023
2.0.57 906 11/28/2023
2.0.56 274 11/28/2023
2.0.55 8,634 11/17/2023
2.0.54 322 11/17/2023
2.0.53 267 11/17/2023
2.0.52 1,000 10/30/2023
2.0.51 351 10/26/2023
2.0.50 836 10/12/2023
2.0.49 2,887 9/28/2023
2.0.48 609 9/22/2023
2.0.47 259 9/21/2023
2.0.46 313 9/20/2023
2.0.45 463 9/14/2023
2.0.44 264 9/14/2023
2.0.43 822 8/25/2023
2.0.42 280 8/25/2023
2.0.42-2308241227.f6c25ee 107 8/24/2023
2.0.42-2308161448.98b76da 106 8/16/2023
2.0.42-2308161446.ec7a107 105 8/16/2023
2.0.42-2308161429.74c00e2 108 8/16/2023
2.0.41 623 8/14/2023
2.0.40 587 8/4/2023
2.0.39 342 8/4/2023
2.0.38 299 8/4/2023
2.0.37 316 8/4/2023
2.0.36 339 8/4/2023
2.0.35 297 8/4/2023
2.0.34 1,056 6/22/2023
2.0.33 337 6/22/2023
2.0.32 345 6/22/2023
2.0.32-2306210815 94 6/21/2023
2.0.32-2306210812 66 6/21/2023
2.0.32-2306151149.332886a 125 6/15/2023
2.0.32-2306151140.93d85dc 121 6/15/2023
2.0.32-2306150947.3b80752 121 6/15/2023
2.0.31 478 6/12/2023
2.0.30 567 6/9/2023
2.0.30-2306091428.6fc0bd3 154 6/9/2023
2.0.30-2306091304.51d4d0b 125 6/9/2023
2.0.30-2306091204.1fe4d76 122 6/9/2023
2.0.30-2306090857.5be3155 129 6/9/2023
2.0.30-2306081701.3a525ef 122 6/8/2023
2.0.30-2306081646.5a15be2 130 6/8/2023
2.0.30-2306081628.68f2d91 123 6/8/2023
2.0.30-2306081611.3c4f19f 126 6/8/2023
2.0.30-2306081557.4fa2105 120 6/8/2023
2.0.30-2306081119.fdddf3b 129 6/8/2023
2.0.30-2306081053.68ba9f2 121 6/8/2023
2.0.30-2306080900.1b126b1 124 6/8/2023
2.0.29 995 5/23/2023
2.0.28 502 5/18/2023
2.0.27 441 5/12/2023
2.0.26 409 5/12/2023
2.0.25 530 4/26/2023
2.0.24 11,285 2/1/2023
2.0.23 746 1/30/2023
2.0.22 955 1/26/2023
2.0.21 761 1/25/2023
2.0.20 870 1/25/2023
2.0.19 2,118 11/30/2022
2.0.18 1,640 11/14/2022
2.0.17 4,890 10/19/2022
2.0.16 1,362 10/17/2022
2.0.15 1,283 10/17/2022
2.0.14 1,922 10/3/2022
2.0.13 1,306 10/3/2022
2.0.12 1,368 10/3/2022
2.0.11 1,410 9/27/2022
2.0.10 1,517 9/20/2022
2.0.9 1,499 9/19/2022
2.0.8 1,496 9/15/2022
2.0.7 1,494 9/14/2022
2.0.6 1,364 9/13/2022
2.0.5 1,385 9/13/2022
2.0.4 1,397 9/13/2022
2.0.3 1,436 9/9/2022
2.0.2 1,342 9/9/2022
2.0.1 1,385 9/9/2022
1.0.276 76,676 8/17/2022
1.0.275 1,411 8/17/2022
1.0.274 2,266 7/28/2022
1.0.273 5,715 7/14/2022
1.0.272 1,512 7/14/2022
1.0.271 1,473 7/13/2022
1.0.270 1,690 7/7/2022
1.0.269 1,451 7/7/2022
1.0.268 2,052 6/20/2022
1.0.267 1,625 6/14/2022
1.0.266 1,737 6/9/2022
1.0.265 3,051 5/27/2022
1.0.264 1,618 5/24/2022
1.0.263 1,463 5/23/2022
1.0.262 1,594 5/17/2022
1.0.261 1,461 5/16/2022
1.0.260 1,471 5/16/2022
1.0.259 1,928 5/6/2022
1.0.258 1,482 5/5/2022
1.0.257 1,459 5/5/2022
1.0.256 1,454 5/4/2022
1.0.255 1,494 5/4/2022
1.0.254 2,266 4/5/2022
1.0.253 1,527 4/5/2022
1.0.252 1,482 4/4/2022
1.0.251 1,681 3/22/2022
1.0.250 3,136 2/3/2022
1.0.249 1,560 1/28/2022
1.0.248 1,868 1/27/2022
1.0.247 1,539 1/26/2022
1.0.246 1,505 1/25/2022
1.0.245 1,498 1/18/2022
1.0.244 1,485 1/18/2022
1.0.243 1,345 1/12/2022
1.0.242 1,190 12/10/2021
1.0.241 930 12/10/2021
1.0.240 930 12/10/2021
1.0.239 1,057 12/6/2021
1.0.238 1,405 12/6/2021
1.0.236 941 12/2/2021
1.0.235 992 12/2/2021
1.0.234 949 12/2/2021
1.0.233 1,186 11/18/2021
1.0.232 953 11/18/2021
1.0.231 1,197 11/9/2021
1.0.230 1,077 11/9/2021
1.0.227 1,199 10/14/2021
1.0.226 1,326 9/2/2021
1.0.225 961 8/31/2021
1.0.224 992 8/30/2021
1.0.223 1,116 8/6/2021
1.0.222 980 8/6/2021
1.0.221 986 8/6/2021
1.0.220 1,004 8/3/2021
1.0.219 1,068 7/30/2021
1.0.218 1,123 7/7/2021
1.0.217 924 7/7/2021
1.0.216 955 7/7/2021
1.0.215 980 7/6/2021
1.0.214 985 7/6/2021
1.0.213 932 7/6/2021
1.0.212 27,763 5/14/2021
1.0.211 950 5/11/2021
1.0.210 937 5/11/2021
1.0.209 890 5/11/2021
1.0.208 879 5/11/2021
1.0.207 1,229 5/3/2021
1.0.206 1,032 5/3/2021
1.0.205 966 5/3/2021
1.0.204 916 5/3/2021
1.0.203 950 4/15/2021
1.0.202 946 4/15/2021
1.0.201 900 4/15/2021
1.0.200 907 4/15/2021
1.0.199 909 4/14/2021
1.0.198 1,091 3/19/2021
1.0.197 952 3/9/2021
1.0.196 960 3/9/2021
1.0.195 939 3/9/2021
1.0.194 1,021 3/9/2021
1.0.193 1,029 3/9/2021
1.0.192 1,046 3/9/2021
1.0.191 1,042 2/12/2021
1.0.190 1,093 1/21/2021
1.0.189 1,089 1/21/2021
1.0.188 981 1/21/2021
1.0.187 964 1/21/2021
1.0.186 1,298 1/8/2021
1.0.185 1,022 1/8/2021
1.0.184 5,228 11/13/2020
1.0.183 978 11/13/2020
1.0.182 1,010 11/13/2020
1.0.181 1,410 10/13/2020
1.0.180 1,150 10/12/2020
1.0.179 1,234 8/31/2020
1.0.178 3,755 8/4/2020
1.0.177 1,143 7/21/2020
1.0.176 1,061 7/10/2020
1.0.175 1,117 7/10/2020
1.0.174 3,672 5/20/2020
1.0.173 1,137 5/20/2020
1.0.172 1,206 5/20/2020
1.0.171 1,184 5/8/2020
1.0.170 2,124 4/9/2020
1.0.169 1,254 4/3/2020
1.0.168 1,159 3/25/2020
1.0.167 1,275 3/23/2020
1.0.166 1,289 2/6/2020
1.0.165 1,299 12/30/2019
1.0.164 1,167 12/28/2019
1.0.163 1,144 12/28/2019
1.0.162 1,537 12/5/2019
1.0.161 1,126 12/5/2019
1.0.160 1,537 11/20/2019
1.0.159 1,814 10/14/2019
1.0.158 800 10/13/2019
1.0.157 1,273 10/3/2019
1.0.156 1,189 9/17/2019
1.0.155 1,190 9/15/2019
1.0.154 2,881 6/20/2019
1.0.153 1,854 6/20/2019
1.0.152 2,059 6/6/2019
1.0.151 1,880 6/4/2019
1.0.150 1,909 5/25/2019
1.0.149 1,854 5/23/2019
1.0.148 1,853 5/16/2019
1.0.147 1,880 5/16/2019
1.0.146 1,626 5/16/2019
1.0.145 1,575 5/16/2019
1.0.143 3,099 5/14/2019
1.0.142 1,779 5/13/2019
1.0.141 1,515 5/7/2019
1.0.140 1,595 4/16/2019
1.0.139 1,578 4/16/2019
1.0.138 1,494 4/16/2019
1.0.137 1,429 4/16/2019
1.0.136 1,643 1/9/2019
1.0.135 6,355 12/12/2018
1.0.134 1,589 12/12/2018
1.0.132 1,832 8/11/2018
1.0.131 1,846 7/31/2018
1.0.130 1,846 7/25/2018
1.0.129 1,818 7/24/2018
1.0.128 1,838 7/19/2018
1.0.127 1,987 7/4/2018
1.0.126 2,027 6/20/2018
1.0.125 2,029 6/19/2018
1.0.124 2,080 5/24/2018
1.0.123 2,016 5/18/2018
1.0.122 2,187 5/17/2018
1.0.121 2,158 4/29/2018
1.0.120 2,137 4/29/2018
1.0.119 2,093 4/27/2018
1.0.118 2,068 4/26/2018
1.0.117 2,049 4/26/2018
1.0.116 2,028 4/25/2018
1.0.115 1,833 4/23/2018
1.0.114 2,068 4/12/2018
1.0.113 2,119 4/11/2018
1.0.112 2,006 4/4/2018
1.0.111 2,062 4/3/2018
1.0.110 2,065 4/2/2018
1.0.109 2,069 3/29/2018
1.0.108 2,062 3/28/2018
1.0.107 2,078 3/22/2018
1.0.106 2,091 3/22/2018
1.0.105 2,239 2/28/2018
1.0.104 2,153 2/26/2018
1.0.103 2,084 2/25/2018
1.0.102 2,074 2/24/2018
1.0.101 1,846 2/23/2018
1.0.100 2,240 2/23/2018
1.0.99 2,134 1/16/2018
1.0.98 2,133 12/20/2017
1.0.97 2,107 12/10/2017
1.0.96 2,048 12/7/2017
1.0.95 2,080 12/7/2017
1.0.94 1,877 12/6/2017
1.0.93 2,121 12/6/2017
1.0.92 1,939 11/30/2017
1.0.91 1,887 11/30/2017
1.0.90 1,886 11/28/2017
1.0.89 1,843 11/28/2017
1.0.88 2,130 10/18/2017
1.0.87 2,092 10/16/2017
1.0.86 2,080 10/16/2017
1.0.85 2,128 10/15/2017
1.0.84 2,123 10/6/2017
1.0.83 2,133 10/6/2017
1.0.82 2,122 10/5/2017
1.0.81 2,125 10/4/2017
1.0.80 2,156 9/30/2017
1.0.79 2,356 9/28/2017
1.0.78 2,062 9/27/2017
1.0.77 2,092 9/26/2017
1.0.76 2,075 9/26/2017
1.0.75 2,102 9/26/2017
1.0.74 2,062 9/26/2017
1.0.73 2,072 9/26/2017
1.0.72 2,151 9/21/2017
1.0.71 2,137 9/20/2017
1.0.70 2,083 9/20/2017
1.0.69 2,101 9/20/2017
1.0.68 2,092 9/20/2017
1.0.67 2,089 9/18/2017
1.0.66 2,148 9/18/2017
1.0.65 2,111 9/18/2017
1.0.64 2,113 9/18/2017
1.0.63 2,093 9/17/2017
1.0.62 2,076 9/17/2017
1.0.61 2,109 9/17/2017
1.0.60 2,142 9/15/2017
1.0.59 2,131 9/15/2017
1.0.58 2,117 9/12/2017
1.0.57 2,077 9/12/2017
1.0.56 2,114 9/12/2017
1.0.55 2,122 9/12/2017
1.0.54 2,091 9/12/2017
1.0.53 2,111 9/11/2017
1.0.52 2,103 9/11/2017
1.0.51 2,091 9/8/2017
1.0.50 2,108 9/8/2017
1.0.49 2,136 9/6/2017
1.0.48 2,113 9/6/2017
1.0.47 2,114 9/5/2017
1.0.46 2,131 9/5/2017
1.0.45 2,109 9/1/2017
1.0.44 2,110 8/31/2017
1.0.43 2,137 8/31/2017
1.0.42 2,130 8/31/2017
1.0.41 2,120 8/31/2017
1.0.40 2,147 8/31/2017
1.0.39 2,173 8/30/2017
1.0.38 1,906 8/28/2017
1.0.37 1,942 8/22/2017
1.0.36 1,914 8/22/2017
1.0.35 1,899 8/22/2017
1.0.34 1,884 8/21/2017
1.0.33 1,884 8/17/2017
1.0.32 1,934 8/16/2017
1.0.31 1,921 8/16/2017
1.0.30 1,903 8/15/2017
1.0.29 1,896 8/15/2017
1.0.28 1,955 8/15/2017
1.0.27 1,967 8/14/2017
1.0.26 1,886 8/11/2017
1.0.25 1,897 8/11/2017
1.0.24 1,876 8/9/2017
1.0.21 1,895 8/7/2017
1.0.19 1,950 8/7/2017
1.0.17 1,940 8/7/2017
1.0.15 1,926 8/4/2017
1.0.13 1,910 8/4/2017
1.0.11 1,926 8/3/2017
1.0.9 1,938 7/23/2017
1.0.8 1,916 7/23/2017
1.0.7 1,906 7/23/2017
1.0.6 1,909 7/23/2017
1.0.5 1,924 7/22/2017
1.0.4 1,930 7/22/2017
1.0.3 1,917 7/22/2017
1.0.1 2,033 7/21/2017
1.0.0 1,943 7/20/2017