Cloned from https://fluentassertions.codeplex.com/