summaryrefslogtreecommitdiff
path: root/go/lasagna/lasagna_test.go
blob: 9ed503b6d0678cf4cf756ad31ff02481f26349b9 (plain)
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
package lasagna

import "testing"

type lasagnaTests struct {
	name                   string
	layers, time, expected int
}

func TestOvenTime(t *testing.T) {
	tests := []lasagnaTests{
		{
			name:     "Calculates how many minutes the lasagna should be in the oven",
			layers:   0,
			time:     40,
			expected: 40,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := OvenTime; got != tt.expected {
				t.Errorf("OvenTime(%d)  = %d; want %d", tt.expected, got, tt.expected)
			}
		})
	}
}

func TestRemainingOvenTime(t *testing.T) {
	tests := []lasagnaTests{
		{
			name:     "Remaining minutes in oven",
			layers:   0,
			time:     15,
			expected: 25,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := RemainingOvenTime(tt.time); got != tt.expected {
				t.Errorf("RemainingOvenTime(%d) = %d; want %d", tt.time, got, tt.expected)
			}
		})
	}

}
func TestPreparationTime(t *testing.T) {
	tests := []lasagnaTests{
		{
			name:     "Preparation time in minutes for one layer",
			layers:   1,
			time:     0,
			expected: 2,
		},
		{
			name:     "Preparation time in minutes for multiple layers",
			layers:   4,
			time:     0,
			expected: 8,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := PreparationTime(tt.layers); got != tt.expected {
				t.Errorf("PreparationTime(%d) = %d; want %d", tt.layers, got, tt.expected)
			}
		})

	}
}

func TestElapsedTime(t *testing.T) {
	tests := []lasagnaTests{
		{
			name:     "Total time in minutes for one layer",
			layers:   1,
			time:     30,
			expected: 32,
		},
		{
			name:     "Total time in minutes for multiple layers",
			layers:   4,
			time:     8,
			expected: 16,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := ElapsedTime(tt.layers, tt.time); got != tt.expected {
				t.Errorf("ElapsedTime(%d, %d) = %d; want %d", tt.layers, tt.time, got, tt.expected)
			}
		})

	}
}