Skip to content
This repository was archived by the owner on Feb 23, 2020. It is now read-only.

Commit 45b0582

Browse files
committed
Added More Default Lambda functions and division by zero exception
1 parent 1bd617a commit 45b0582

File tree

2 files changed

+311
-5
lines changed

2 files changed

+311
-5
lines changed

src/linq/lamdba/DefaultLambdaFunctions.kt

Lines changed: 302 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2525

2626
package linq.lamdba
2727

28+
import linq.lamdba.exceptions.DivisionByZeroException
29+
2830
/**
2931
* Created by Tom Needham on 03/03/2016.
3032
*/
@@ -36,23 +38,318 @@ open class DefaultLambdaFunctions {
3638
}
3739
@JvmStatic()
3840
fun InRange(a: Int, b: Int) : Boolean{
39-
return a <= b;
41+
return a <= b
4042
}
4143
@JvmStatic()
4244
fun LessThan(a: Int, b: Int) : Boolean{
43-
return a < b;
45+
return a < b
4446
}
4547
@JvmStatic()
4648
fun MoreThan(a: Int, b: Int) : Boolean{
47-
return a > b;
49+
return a > b
4850
}
4951
@JvmStatic()
5052
fun LessThanOrEqual(a: Int, b: Int) : Boolean{
51-
return a <= b;
53+
return a <= b
5254
}
5355
@JvmStatic()
5456
fun MoreThanOrEqual(a: Int, b: Int) : Boolean{
55-
return a >= b;
57+
return a >= b
58+
}
59+
@JvmStatic()
60+
fun Equal(a: Int, b: Int) : Boolean{
61+
return a == b
62+
}
63+
@JvmStatic()
64+
fun NotEqual(a: Int, b: Int) : Boolean{
65+
return a != b
66+
}
67+
@JvmStatic()
68+
fun LeftShift(a: Int, b: Int) : Int{
69+
return a.shl(b)
70+
}
71+
@JvmStatic()
72+
fun SignedRightShift(a: Int, b: Int) : Int{
73+
return a.shr(b)
74+
}
75+
@JvmStatic()
76+
fun UnsignedShiftRight(a: Int, b: Int) : Int{
77+
return a.ushr(b)
78+
}
79+
@JvmStatic()
80+
fun Add(a: Int, b: Int) : Int{
81+
return a + b
82+
}
83+
@JvmStatic()
84+
fun Subtract(a: Int, b: Int) : Int{
85+
return a - b
86+
}
87+
@JvmStatic()
88+
fun Multiply(a: Int, b: Int) : Int{
89+
return a * b
90+
}
91+
@JvmStatic()
92+
fun Divide(a: Int, b: Int) : Int{
93+
if(b == 0)
94+
throw DivisionByZeroException();
95+
return a / b
96+
}
97+
@JvmStatic()
98+
fun And(a: Int, b: Int) : Int{
99+
return a.and(b)
100+
}
101+
@JvmStatic()
102+
fun Or(a: Int, b: Int) : Int{
103+
return a.or(b)
104+
}
105+
@JvmStatic()
106+
fun Mod(a: Int, b: Int) : Int{
107+
return a.mod(b)
108+
}
109+
@JvmStatic()
110+
fun Xor(a: Int, b: Int) : Int{
111+
return a.xor(b)
112+
}
113+
@JvmStatic()
114+
fun Pow(a: Int, b: Int) : Int{
115+
return Math.pow(a.toDouble(),b.toDouble()).toInt()
116+
}
117+
118+
@JvmStatic()
119+
fun InRange(a: Short, b: Short) : Boolean{
120+
return a <= b
121+
}
122+
@JvmStatic()
123+
fun LessThan(a: Short, b: Short) : Boolean{
124+
return a < b
125+
}
126+
@JvmStatic()
127+
fun MoreThan(a: Short, b: Short) : Boolean{
128+
return a > b
129+
}
130+
@JvmStatic()
131+
fun LessThanOrEqual(a: Short, b: Short) : Boolean{
132+
return a <= b
133+
}
134+
@JvmStatic()
135+
fun MoreThanOrEqual(a: Short, b: Short) : Boolean{
136+
return a >= b
137+
}
138+
@JvmStatic()
139+
fun Equal(a: Short, b: Short) : Boolean{
140+
return a == b
141+
}
142+
@JvmStatic()
143+
fun NotEqual(a: Short, b: Short) : Boolean{
144+
return a != b
145+
}
146+
@JvmStatic()
147+
fun Add(a: Short, b: Short) : Short{
148+
return (a + b).toShort()
149+
}
150+
@JvmStatic()
151+
fun Subtract(a: Short, b: Short) : Short{
152+
return (a - b).toShort()
153+
}
154+
@JvmStatic()
155+
fun Multiply(a: Short, b: Short) : Short{
156+
return (a * b).toShort()
157+
}
158+
@JvmStatic()
159+
fun Divide(a: Short, b: Short) : Short{
160+
if((b == 0.toShort()))
161+
throw DivisionByZeroException();
162+
return (a / b).toShort()
163+
}
164+
@JvmStatic()
165+
fun Mod(a: Short, b: Short) : Short{
166+
return (a.mod(b)).toShort()
167+
}
168+
@JvmStatic()
169+
fun Pow(a: Short, b: Short) : Short{
170+
return Math.pow(a.toDouble(),b.toDouble()).toShort()
171+
}
172+
173+
@JvmStatic()
174+
fun InRange(a: Long, b: Long) : Boolean{
175+
return a <= b
176+
}
177+
@JvmStatic()
178+
fun LessThan(a: Long, b: Long) : Boolean{
179+
return a < b
180+
}
181+
@JvmStatic()
182+
fun MoreThan(a: Long, b: Long) : Boolean{
183+
return a > b
184+
}
185+
@JvmStatic()
186+
fun LessThanOrEqual(a: Long, b: Long) : Boolean{
187+
return a <= b
188+
}
189+
@JvmStatic()
190+
fun MoreThanOrEqual(a: Long, b: Long) : Boolean{
191+
return a >= b
192+
}
193+
@JvmStatic()
194+
fun Equal(a: Long, b: Long) : Boolean{
195+
return a == b
196+
}
197+
@JvmStatic()
198+
fun NotEqual(a: Long, b: Long) : Boolean{
199+
return a != b
200+
}
201+
@JvmStatic()
202+
fun LeftShift(a: Long, b: Long) : Long{
203+
return a.shl(b.toInt())
204+
}
205+
@JvmStatic()
206+
fun SignedRightShift(a: Long, b: Long) : Long{
207+
return a.shr(b.toInt())
208+
}
209+
@JvmStatic()
210+
fun UnsignedShiftRight(a: Long, b: Long) : Long{
211+
return a.ushr(b.toInt())
212+
}
213+
@JvmStatic()
214+
fun Add(a: Long, b: Long) : Long{
215+
return a + b
216+
}
217+
@JvmStatic()
218+
fun Subtract(a: Long, b: Long) : Long{
219+
return a - b
220+
}
221+
@JvmStatic()
222+
fun Multiply(a: Long, b: Long) : Long{
223+
return a * b
224+
}
225+
@JvmStatic()
226+
fun Divide(a: Long, b: Long) : Long{
227+
if(b == 0L)
228+
throw DivisionByZeroException();
229+
return a / b
230+
}
231+
@JvmStatic()
232+
fun And(a: Long, b: Long) : Long{
233+
return a.and(b)
234+
}
235+
@JvmStatic()
236+
fun Or(a: Long, b: Long) : Long{
237+
return a.or(b)
238+
}
239+
@JvmStatic()
240+
fun Mod(a: Long, b: Long) : Long{
241+
return a.mod(b)
242+
}
243+
@JvmStatic()
244+
fun Xor(a: Long, b: Long) : Long{
245+
return a.xor(b)
246+
}
247+
@JvmStatic()
248+
fun Pow(a: Long, b: Long) : Long{
249+
return Math.pow(a.toDouble(),b.toDouble()).toLong()
250+
}
251+
252+
@JvmStatic()
253+
fun InRange(a: Float, b: Float) : Boolean{
254+
return a <= b
255+
}
256+
@JvmStatic()
257+
fun LessThan(a: Float, b: Float) : Boolean{
258+
return a < b
259+
}
260+
@JvmStatic()
261+
fun MoreThan(a: Float, b: Float) : Boolean{
262+
return a > b
263+
}
264+
@JvmStatic()
265+
fun LessThanOrEqual(a: Float, b: Float) : Boolean{
266+
return a <= b
267+
}
268+
@JvmStatic()
269+
fun MoreThanOrEqual(a: Float, b: Float) : Boolean{
270+
return a >= b
271+
}
272+
@JvmStatic()
273+
fun Equal(a: Float, b: Float) : Boolean{
274+
return a == b
275+
}
276+
@JvmStatic()
277+
fun NotEqual(a: Float, b: Float) : Boolean{
278+
return a != b
279+
}
280+
@JvmStatic()
281+
fun Add(a: Float, b: Float) : Float{
282+
return a + b
283+
}
284+
@JvmStatic()
285+
fun Subtract(a: Float, b: Float) : Float{
286+
return a - b
287+
}
288+
@JvmStatic()
289+
fun Multiply(a: Float, b: Float) : Float{
290+
return a * b
291+
}
292+
@JvmStatic()
293+
fun Divide(a: Float, b: Float) : Float{
294+
if(b == 0.0f)
295+
throw DivisionByZeroException();
296+
return a / b
297+
}
298+
@JvmStatic()
299+
fun Mod(a: Float, b: Float) : Float{
300+
return a.mod(b)
301+
}
302+
303+
@JvmStatic()
304+
fun InRange(a: Double, b: Double) : Boolean{
305+
return a <= b
306+
}
307+
@JvmStatic()
308+
fun LessThan(a: Double, b: Double) : Boolean{
309+
return a < b
310+
}
311+
@JvmStatic()
312+
fun MoreThan(a: Double, b: Double) : Boolean{
313+
return a > b
314+
}
315+
@JvmStatic()
316+
fun LessThanOrEqual(a: Double, b: Double) : Boolean{
317+
return a <= b
318+
}
319+
@JvmStatic()
320+
fun MoreThanOrEqual(a: Double, b: Double) : Boolean{
321+
return a >= b
322+
}
323+
@JvmStatic()
324+
fun Equal(a: Double, b: Double) : Boolean{
325+
return a == b
326+
}
327+
@JvmStatic()
328+
fun NotEqual(a: Double, b: Double) : Boolean{
329+
return a != b
330+
}
331+
@JvmStatic()
332+
fun Add(a: Double, b: Double) : Double{
333+
return a + b
334+
}
335+
@JvmStatic()
336+
fun Subtract(a: Double, b: Double) : Double{
337+
return a - b
338+
}
339+
@JvmStatic()
340+
fun Multiply(a: Double, b: Double) : Double{
341+
return a * b
342+
}
343+
@JvmStatic()
344+
fun Divide(a: Double, b: Double) : Double{
345+
if(b == 0.0)
346+
throw DivisionByZeroException();
347+
return a / b
348+
}
349+
@JvmStatic()
350+
fun Mod(a: Double, b: Double) : Double{
351+
return a.mod(b)
56352
}
353+
57354
}
58355
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package linq.lamdba.exceptions
2+
3+
/**
4+
* Created by thoma on 04/03/2016.
5+
*/
6+
class DivisionByZeroException constructor() : Throwable(){
7+
override val message: String?
8+
get() = super.message
9+
}

0 commit comments

Comments
 (0)