Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–189 unchanged (189 lines)
190 [Test]
191 public void get_next_albums_should_return_next_album()
192 {
193 GivenMultipleAlbums();
194
195 var result = _albumRepo.GetNextAlbums(new[] { _artist.ArtistMetadataId });
196 result.Should().BeEquivalentTo(_albums.Take(1), AlbumComparerOptions);
197 }
198
199 [Test]
200 public void get_last_albums_should_return_next_album()
201 {
202 GivenMultipleAlbums();
203
204 var result = _albumRepo.GetLastAlbums(new[] { _artist.ArtistMetadataId });
205 result.Should().BeEquivalentTo(_albums.Skip(2).Take(1), AlbumComparerOptions);
206 }
207
208 private EquivalencyAssertionOptions<Album> AlbumComparerOptions(EquivalencyAssertionOptions<Album> opts) => opts.ComparingByMembers<Album>()
209 .Excluding(ctx => ctx.SelectedMemberInfo.MemberType.IsGenericType && ctx.SelectedMemberInfo.MemberType.GetGenericTypeDefinition() == typeof(LazyLoaded<>))
210 .Excluding(x => x.ArtistId);
211 }
212}
213

After

…lines 1–189 unchanged (189 lines)
190 [Test]
191 public void get_next_albums_should_return_next_album()
192 {
193 GivenMultipleAlbums();
194
195 var result = _albumRepo.GetNextAlbums(new[] { _artist.ArtistMetadataId });
196 result.Should().BeEquivalentTo(_albums.Skip(1).Take(1), AlbumComparerOptions);
197 }
198
199 [Test]
200 public void get_last_albums_should_return_next_album()
201 {
202 GivenMultipleAlbums();
203
204 var result = _albumRepo.GetLastAlbums(new[] { _artist.ArtistMetadataId });
205 result.Should().BeEquivalentTo(_albums.Skip(3).Take(1), AlbumComparerOptions);
206 }
207
208 private EquivalencyAssertionOptions<Album> AlbumComparerOptions(EquivalencyAssertionOptions<Album> opts) => opts.ComparingByMembers<Album>()
209 .Excluding(ctx => ctx.SelectedMemberInfo.MemberType.IsGenericType && ctx.SelectedMemberInfo.MemberType.GetGenericTypeDefinition() == typeof(LazyLoaded<>))
210 .Excluding(x => x.ArtistId);
211 }
212}
213

Before

compilation_unit
using_directive
using "using"
identifier "System"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "System"
. "."
identifier "Collections"
. "."
identifier "Generic"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Linq"
; ";"
using_directive
using "using"
qualified_name
identifier "FizzWare"
. "."
identifier "NBuilder"
; ";"
using_directive
using "using"
identifier "FluentAssertions"
; ";"
using_directive
using "using"
qualified_name
identifier "FluentAssertions"
. "."
identifier "Equivalency"
; ";"
using_directive
using "using"
qualified_name
identifier "NUnit"
. "."
identifier "Framework"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Datastore"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Test"
. "."
identifier "Framework"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Test"
. "."
identifier "MusicTests"
. "."
identifier "AlbumRepositoryTests"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "TestFixture"
] "]"
modifier
public "public"
class "class"
identifier "AlbumRepositoryFixture"
base_list
: ":"
generic_name
identifier "DbTest"
type_argument_list
< "<"
identifier "AlbumService"
, ","
identifier "Album"
> ">"
declaration_list
{ "{"
field_declaration
modifier
private "private"
variable_declaration
identifier "Artist"
variable_declarator
identifier "_artist"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "Album"
variable_declarator
identifier "_album"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "Album"
variable_declarator
identifier "_albumSpecial"
; ";"
field_declaration
modifier
private "private"
variable_declaration
generic_name
identifier "List"
type_argument_list
< "<"
identifier "Album"
> ">"
variable_declarator
identifier "_albums"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "AlbumRelease"
variable_declarator
identifier "_release"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "AlbumRepository"
variable_declarator
identifier "_albumRepo"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "ReleaseRepository"
variable_declarator
identifier "_releaseRepo"
; ";"
method_declaration (+539 nodes collapsed)
method_declaration (+88 nodes collapsed)
method_declaration (+119 nodes collapsed)
method_declaration (+85 nodes collapsed)
method_declaration (+107 nodes collapsed)
method_declaration (+234 nodes collapsed)
method_declaration (+63 nodes collapsed)
method_declaration (+278 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "Test"
] "]"
modifier
public "public"
predefined_type "void"
identifier "get_next_albums_should_return_next_album"
parameter_list
( "("
) ")"
block
{ "{"
expression_statement
invocation_expression
identifier "GivenMultipleAlbums"
argument_list
( "("
) ")"
; ";"
local_declaration_statement (+28 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "result"
. "."
identifier "Should"
argument_list
( "("
) ")"
. "."
identifier "BeEquivalentTo"
argument_list
( "("
argument
invocation_expression
member_access_expression
identifier "_albums"
. "."
identifier "Take"
argument_list
( "("
argument
integer_literal "1"
) ")"
, ","
argument
identifier "AlbumComparerOptions"
) ")"
; ";"
} "}"
method_declaration
attribute_list
[ "["
attribute
identifier "Test"
] "]"
modifier
public "public"
predefined_type "void"
identifier "get_last_albums_should_return_next_album"
parameter_list
( "("
) ")"
block
{ "{"
expression_statement
invocation_expression
identifier "GivenMultipleAlbums"
argument_list
( "("
) ")"
; ";"
local_declaration_statement (+28 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "result"
. "."
identifier "Should"
argument_list
( "("
) ")"
. "."
identifier "BeEquivalentTo"
argument_list
( "("
argument
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "_albums"
. "."
identifier "Skip"
argument_list
( "("
argument
integer_literal "2"
) ")"
. "."
identifier "Take"
argument_list
( "("
argument
integer_literal "1"
) ")"
, ","
argument
identifier "AlbumComparerOptions"
) ")"
; ";"
} "}"
method_declaration (+100 nodes collapsed)
} "}"
} "}"

After

compilation_unit
using_directive
using "using"
identifier "System"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "System"
. "."
identifier "Collections"
. "."
identifier "Generic"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Linq"
; ";"
using_directive
using "using"
qualified_name
identifier "FizzWare"
. "."
identifier "NBuilder"
; ";"
using_directive
using "using"
identifier "FluentAssertions"
; ";"
using_directive
using "using"
qualified_name
identifier "FluentAssertions"
. "."
identifier "Equivalency"
; ";"
using_directive
using "using"
qualified_name
identifier "NUnit"
. "."
identifier "Framework"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Datastore"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Test"
. "."
identifier "Framework"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Test"
. "."
identifier "MusicTests"
. "."
identifier "AlbumRepositoryTests"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "TestFixture"
] "]"
modifier
public "public"
class "class"
identifier "AlbumRepositoryFixture"
base_list
: ":"
generic_name
identifier "DbTest"
type_argument_list
< "<"
identifier "AlbumService"
, ","
identifier "Album"
> ">"
declaration_list
{ "{"
field_declaration
modifier
private "private"
variable_declaration
identifier "Artist"
variable_declarator
identifier "_artist"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "Album"
variable_declarator
identifier "_album"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "Album"
variable_declarator
identifier "_albumSpecial"
; ";"
field_declaration
modifier
private "private"
variable_declaration
generic_name
identifier "List"
type_argument_list
< "<"
identifier "Album"
> ">"
variable_declarator
identifier "_albums"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "AlbumRelease"
variable_declarator
identifier "_release"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "AlbumRepository"
variable_declarator
identifier "_albumRepo"
; ";"
field_declaration
modifier
private "private"
variable_declaration
identifier "ReleaseRepository"
variable_declarator
identifier "_releaseRepo"
; ";"
method_declaration (+539 nodes collapsed)
method_declaration (+88 nodes collapsed)
method_declaration (+119 nodes collapsed)
method_declaration (+85 nodes collapsed)
method_declaration (+107 nodes collapsed)
method_declaration (+234 nodes collapsed)
method_declaration (+63 nodes collapsed)
method_declaration (+278 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "Test"
] "]"
modifier
public "public"
predefined_type "void"
identifier "get_next_albums_should_return_next_album"
parameter_list
( "("
) ")"
block
{ "{"
expression_statement
invocation_expression
identifier "GivenMultipleAlbums"
argument_list
( "("
) ")"
; ";"
local_declaration_statement (+28 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "result"
. "."
identifier "Should"
argument_list
( "("
) ")"
. "."
identifier "BeEquivalentTo"
argument_list
( "("
argument
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "_albums"
. "."
identifier "Skip"
argument_list
( "("
argument
integer_literal "1"
) ")"
. "."
identifier "Take"
argument_list
( "("
argument
integer_literal "1"
) ")"
, ","
argument
identifier "AlbumComparerOptions"
) ")"
; ";"
} "}"
method_declaration
attribute_list
[ "["
attribute
identifier "Test"
] "]"
modifier
public "public"
predefined_type "void"
identifier "get_last_albums_should_return_next_album"
parameter_list
( "("
) ")"
block
{ "{"
expression_statement
invocation_expression
identifier "GivenMultipleAlbums"
argument_list
( "("
) ")"
; ";"
local_declaration_statement (+28 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "result"
. "."
identifier "Should"
argument_list
( "("
) ")"
. "."
identifier "BeEquivalentTo"
argument_list
( "("
argument
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "_albums"
. "."
identifier "Skip"
argument_list
( "("
argument
integer_literal "3"
) ")"
. "."
identifier "Take"
argument_list
( "("
argument
integer_literal "1"
) ")"
, ","
argument
identifier "AlbumComparerOptions"
) ")"
; ";"
} "}"
method_declaration (+100 nodes collapsed)
} "}"
} "}"