1
exercism fetch fsharp rectangles

RectanglesTest.fs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// This file was auto-generated based on version 1.0.0 of the canonical data.

module RectanglesTest

open FsUnit.Xunit
open Xunit

open Rectangles

[<Fact>]
let ``No rows`` () =
    let input = []
    rectangles input |> should equal 0

[<Fact(Skip = "Remove to run test")>]
let ``No columns`` () =
    let input = [""]
    rectangles input |> should equal 0

[<Fact(Skip = "Remove to run test")>]
let ``No rectangles`` () =
    let input = [" "]
    rectangles input |> should equal 0

[<Fact(Skip = "Remove to run test")>]
let ``One rectangle`` () =
    let input = 
      [ "+-+"; 
        "| |"; 
        "+-+" ]
    rectangles input |> should equal 1

[<Fact(Skip = "Remove to run test")>]
let ``Two rectangles without shared parts`` () =
    let input = 
      [ "  +-+"; 
        "  | |"; 
        "+-+-+"; 
        "| |  "; 
        "+-+  " ]
    rectangles input |> should equal 2

[<Fact(Skip = "Remove to run test")>]
let ``Five rectangles with shared parts`` () =
    let input = 
      [ "  +-+"; 
        "  | |"; 
        "+-+-+"; 
        "| | |"; 
        "+-+-+" ]
    rectangles input |> should equal 5

[<Fact(Skip = "Remove to run test")>]
let ``Rectangle of height 1 is counted`` () =
    let input = 
      [ "+--+"; 
        "+--+" ]
    rectangles input |> should equal 1

[<Fact(Skip = "Remove to run test")>]
let ``Rectangle of width 1 is counted`` () =
    let input = 
      [ "++"; 
        "||"; 
        "++" ]
    rectangles input |> should equal 1

[<Fact(Skip = "Remove to run test")>]
let ``1x1 square is counted`` () =
    let input = 
      [ "++"; 
        "++" ]
    rectangles input |> should equal 1

[<Fact(Skip = "Remove to run test")>]
let ``Only complete rectangles are counted`` () =
    let input = 
      [ "  +-+"; 
        "    |"; 
        "+-+-+"; 
        "| | -"; 
        "+-+-+" ]
    rectangles input |> should equal 1

[<Fact(Skip = "Remove to run test")>]
let ``Rectangles can be of different sizes`` () =
    let input = 
      [ "+------+----+"; 
        "|      |    |"; 
        "+---+--+    |"; 
        "|   |       |"; 
        "+---+-------+" ]
    rectangles input |> should equal 3

[<Fact(Skip = "Remove to run test")>]
let ``Corner is required for a rectangle to be complete`` () =
    let input = 
      [ "+------+----+"; 
        "|      |    |"; 
        "+------+    |"; 
        "|   |       |"; 
        "+---+-------+" ]
    rectangles input |> should equal 2

[<Fact(Skip = "Remove to run test")>]
let ``Large input with many rectangles`` () =
    let input = 
      [ "+---+--+----+"; 
        "|   +--+----+"; 
        "+---+--+    |"; 
        "|   +--+----+"; 
        "+---+--+--+-+"; 
        "+---+--+--+-+"; 
        "+------+  | |"; 
        "          +-+" ]
    rectangles input |> should equal 60