Pinker.js Tests: in progress
Layout:
	[two-segment lines]
	[three-segment lines]
	[left to right]
	[right to left]
	[top to bottom]
	[bottom to top]
	[diagonal up-left]
	[diagonal down-left]
	[diagonal up-right]
	[diagonal down-right]
[two-segment lines]:
	Layout:
		[A1]
		[A2][A3]
		[A4][A5][A6]
		[B1][B2][B3]
		[B4][B5]
		[B6]
	Relate:
		[A1]->[A6] "start label":"middle label":"end label"
		[B3]->[B6] "start label":"middle label":"end label"
[three-segment lines]:
	Layout:
		[A1]
		[A2]
		[A3]
		[B1][B2][B3]
	Relate:
		[A1]->[A3] "start label":"middle label":"end label"
		[B1]->[B3] "start label":"middle label":"end label"
[left to right]:
	Layout:
		[Loooooooooooooooooooooooooong]
		[A1]...[A2]
		[B1]...[B2]
		[C1]...[C2]
		[D1]...[D2]
		[E1]...[E2]
		[F1]...[F2]
		[G1]...[G2]
		[H1]...[H2]
		[I1]...[I2]
	Relate:
		[A1]->[A2] "middle label"
		[B1]->[B2] :"middle label":
		[C1]->[C2] "start label" : "middle label" : "end label"
		[D1]->[D2] "start label" :: "end label"
		[E1]->[E2] "start label":"end label"
		[F1]->[F2] "start label":
		[G1]->[G2] :"end label"
		[H1]->[H2] "start label":"too long end label"
		[I1]->[I2] "middle label too loooooooong"
[right to left]:
	Layout:
		[Loooooooooooooooooooooooooong]
		[A1]...[A2]
		[B1]...[B2]
		[C1]...[C2]
		[D1]...[D2]
		[E1]...[E2]
		[F1]...[F2]
		[G1]...[G2]
		[H1]...[H2]
		[I1]...[I2]
	Relate:
		[A1]D-[A2] "middle label"
		[B1]D-[B2] :"middle label":
		[C1]D-[C2] "start label" : "middle label" : "end label"
		[D1]D-[D2] "start label" :: "end label"
		[E1]D-[E2] "start label":"end label"
		[F1]D-[F2] "start label":
		[G1]D-[G2] :"end label"
		[H1]D-[H2] "start label":"too long end label"
		[I1]D-[I2] "middle label too loooooooong"
[top to bottom]:
	Layout:
		[X][A1][B1][C1][D1][E1][F1][G1][H1][I1]
		[X]
		[X]
		[X]
		[X][A2][B2][C2][D2][E2][F2][G2][H2][I2]
	Relate:
		[A1]->[A2] "middle label"
		[B1]->[B2] :"middle label":
		[C1]->[C2] "start label" : "middle label" : "end label"
		[D1]->[D2] "start label" :: "end label"
		[E1]->[E2] "start label":"end label"
		[F1]->[F2] "start label":
		[G1]->[G2] :"end label"
		[H1]->[H2] "start label":"too long end label"
		[I1]->[I2] "middle label too loooooooong"
[bottom to top]:
	Layout:
		[X][A1][B1][C1][D1][E1][F1][G1][H1][I1]
		[X]
		[X]
		[X]
		[X][A2][B2][C2][D2][E2][F2][G2][H2][I2]
	Relate:
		[A1]D-[A2] "middle label"
		[B1]D-[B2] :"middle label":
		[C1]D-[C2] "start label" : "middle label" : "end label"
		[D1]D-[D2] "start label" :: "end label"
		[E1]D-[E2] "start label":"end label"
		[F1]D-[F2] "start label":
		[G1]D-[G2] :"end label"
		[H1]D-[H2] "start label":"too long end label"
		[I1]D-[I2] "middle label too loooooooong"
[diagonal up-left]:
	Layout:
		[A]
		[B][C][D]
	Relate:
		[D]->[A] "start label":"middle label":"end label"
[diagonal down-left]:
	Layout:
		...[A]
		[B][C][D]
	Relate:
		[A]->[B] "start label":"middle label":"end label"
[diagonal up-right]:
	Layout:
		...[A]
		[B][C][D]
	Relate:
		[B]->[A] "start label":"middle label":"end label"
[diagonal down-right]:
	Layout:
		[A]
		[B][C][D]
	Relate:
		[A]->[D] "start label":"middle label":"end label"