1
+ module AllYourBaseTest
2
+
3
+ open NUnit.Framework
4
+
5
+ open AllYourBase
6
+
7
+ [<Test>]
8
+ let ``Single bit one to decimal`` () =
9
+ let inputBase = 2
10
+ let inputDigits = [ 1 ]
11
+ let outputBase = 10
12
+ let outputDigits = Some [ 1 ]
13
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
14
+
15
+ [<Test>]
16
+ [<Ignore( " Remove to run test" ) >]
17
+ let ``Binary to single decimal`` () =
18
+ let inputBase = 2
19
+ let inputDigits = [ 1 ; 0 ; 1 ]
20
+ let outputBase = 10
21
+ let outputDigits = Some [ 5 ]
22
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
23
+
24
+ [<Test>]
25
+ [<Ignore( " Remove to run test" ) >]
26
+ let ``Single decimal to binary`` () =
27
+ let inputBase = 10
28
+ let inputDigits = [ 5 ]
29
+ let outputBase = 2
30
+ let outputDigits = Some [ 1 ; 0 ; 1 ]
31
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
32
+
33
+ [<Test>]
34
+ [<Ignore( " Remove to run test" ) >]
35
+ let ``Binary to multiple decimal`` () =
36
+ let inputBase = 2
37
+ let inputDigits = [ 1 ; 0 ; 1 ; 0 ; 1 ; 0 ]
38
+ let outputBase = 10
39
+ let outputDigits = Some [ 4 ; 2 ]
40
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
41
+
42
+ [<Test>]
43
+ [<Ignore( " Remove to run test" ) >]
44
+ let ``Decimal to binary`` () =
45
+ let inputBase = 10
46
+ let inputDigits = [ 4 ; 2 ]
47
+ let outputBase = 2
48
+ let outputDigits = Some [ 1 ; 0 ; 1 ; 0 ; 1 ; 0 ]
49
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
50
+
51
+ [<Test>]
52
+ [<Ignore( " Remove to run test" ) >]
53
+ let ``Trinary to hexadecimal`` () =
54
+ let inputBase = 3
55
+ let inputDigits = [ 1 ; 1 ; 2 ; 0 ]
56
+ let outputBase = 16
57
+ let outputDigits = Some [ 2 ; 10 ]
58
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
59
+
60
+ [<Test>]
61
+ [<Ignore( " Remove to run test" ) >]
62
+ let ``Hexadecimal to trinary`` () =
63
+ let inputBase = 16
64
+ let inputDigits = [ 2 ; 10 ]
65
+ let outputBase = 3
66
+ let outputDigits = Some [ 1 ; 1 ; 2 ; 0 ]
67
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
68
+
69
+ [<Test>]
70
+ [<Ignore( " Remove to run test" ) >]
71
+ let ``15 - bit integer`` () =
72
+ let inputBase = 97
73
+ let inputDigits = [ 3 ; 46 ; 60 ]
74
+ let outputBase = 73
75
+ let outputDigits = Some [ 6 ; 10 ; 45 ]
76
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
77
+
78
+ [<Test>]
79
+ [<Ignore( " Remove to run test" ) >]
80
+ let ``Empty list`` () =
81
+ let inputBase = 2
82
+ let inputDigits = []
83
+ let outputBase = 10
84
+ let outputDigits = None
85
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
86
+
87
+ [<Test>]
88
+ [<Ignore( " Remove to run test" ) >]
89
+ let ``Single zero`` () =
90
+ let inputBase = 10
91
+ let inputDigits = [ 0 ]
92
+ let outputBase = 2
93
+ let outputDigits = None
94
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
95
+
96
+ [<Test>]
97
+ [<Ignore( " Remove to run test" ) >]
98
+ let ``Multiple zeros`` () =
99
+ let inputBase = 10
100
+ let inputDigits = [ 0 ; 0 ; 0 ]
101
+ let outputBase = 2
102
+ let outputDigits = None
103
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
104
+
105
+ [<Test>]
106
+ [<Ignore( " Remove to run test" ) >]
107
+ let ``Leading zeros`` () =
108
+ let inputBase = 7
109
+ let inputDigits = [ 0 ; 6 ; 0 ]
110
+ let outputBase = 10
111
+ let outputDigits = None
112
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
113
+
114
+ [<Test>]
115
+ [<Ignore( " Remove to run test" ) >]
116
+ let ``Negative digit`` () =
117
+ let inputBase = 2
118
+ let inputDigits = [ 1 ; - 1 ; 1 ; 0 ; 1 ; 0 ]
119
+ let outputBase = 10
120
+ let outputDigits = None
121
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
122
+
123
+ [<Test>]
124
+ [<Ignore( " Remove to run test" ) >]
125
+ let ``Invalid positive digit`` () =
126
+ let inputBase = 2
127
+ let inputDigits = [ 1 ; 2 ; 1 ; 0 ; 1 ; 0 ]
128
+ let outputBase = 10
129
+ let outputDigits = None
130
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
131
+
132
+ [<Test>]
133
+ [<Ignore( " Remove to run test" ) >]
134
+ let ``First base is one`` () =
135
+ let inputBase = 1
136
+ let inputDigits = []
137
+ let outputBase = 10
138
+ let outputDigits = None
139
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
140
+
141
+ [<Test>]
142
+ [<Ignore( " Remove to run test" ) >]
143
+ let ``Second base is one`` () =
144
+ let inputBase = 2
145
+ let inputDigits = [ 1 ; 0 ; 1 ; 0 ; 1 ; 0 ]
146
+ let outputBase = 1
147
+ let outputDigits = None
148
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
149
+
150
+ [<Test>]
151
+ [<Ignore( " Remove to run test" ) >]
152
+ let ``First base is zero`` () =
153
+ let inputBase = 0
154
+ let inputDigits = []
155
+ let outputBase = 10
156
+ let outputDigits = None
157
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
158
+
159
+ [<Test>]
160
+ [<Ignore( " Remove to run test" ) >]
161
+ let ``Second base is zero`` () =
162
+ let inputBase = 10
163
+ let inputDigits = [ 7 ]
164
+ let outputBase = 0
165
+ let outputDigits = None
166
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
167
+
168
+ [<Test>]
169
+ [<Ignore( " Remove to run test" ) >]
170
+ let ``First base is negative`` () =
171
+ let inputBase = - 2
172
+ let inputDigits = [ 1 ]
173
+ let outputBase = 10
174
+ let outputDigits = None
175
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
176
+
177
+ [<Test>]
178
+ [<Ignore( " Remove to run test" ) >]
179
+ let ``Second base is negative`` () =
180
+ let inputBase = 2
181
+ let inputDigits = [ 1 ]
182
+ let outputBase = - 7
183
+ let outputDigits = None
184
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
185
+
186
+ [<Test>]
187
+ [<Ignore( " Remove to run test" ) >]
188
+ let ``Both bases are negative`` () =
189
+ let inputBase = - 2
190
+ let inputDigits = [ 1 ]
191
+ let outputBase = - 7
192
+ let outputDigits = None
193
+ Assert.That( rebase inputBase inputDigits outputBase, Is.EqualTo( outputDigits))
0 commit comments