commit
						87e20275a7
					
				| @ -13,4 +13,66 @@ | |||||||
|         <relativePath>../parent-kotlin</relativePath> |         <relativePath>../parent-kotlin</relativePath> | ||||||
|     </parent> |     </parent> | ||||||
| 
 | 
 | ||||||
| </project> |     <dependencies> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.jetbrains.kotlin</groupId> | ||||||
|  |             <artifactId>kotlin-stdlib-jdk8</artifactId> | ||||||
|  |             <version>${kotlin.version}</version> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.junit.platform</groupId> | ||||||
|  |             <artifactId>junit-platform-runner</artifactId> | ||||||
|  |             <version>${junit.platform.version}</version> | ||||||
|  |             <scope>test</scope> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.assertj</groupId> | ||||||
|  |             <artifactId>assertj-core</artifactId> | ||||||
|  |             <version>${assertj.version}</version> | ||||||
|  |             <scope>test</scope> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.jetbrains.kotlin</groupId> | ||||||
|  |             <artifactId>kotlin-test</artifactId> | ||||||
|  |             <version>${kotlin.version}</version> | ||||||
|  |             <scope>test</scope> | ||||||
|  |         </dependency> | ||||||
|  |     </dependencies> | ||||||
|  | 
 | ||||||
|  |     <build> | ||||||
|  |         <plugins> | ||||||
|  |             <plugin> | ||||||
|  |                 <groupId>org.jetbrains.kotlin</groupId> | ||||||
|  |                 <artifactId>kotlin-maven-plugin</artifactId> | ||||||
|  |                 <version>${kotlin.version}</version> | ||||||
|  |                 <executions> | ||||||
|  |                     <execution> | ||||||
|  |                         <id>compile</id> | ||||||
|  |                         <phase>compile</phase> | ||||||
|  |                         <goals> | ||||||
|  |                             <goal>compile</goal> | ||||||
|  |                         </goals> | ||||||
|  |                     </execution> | ||||||
|  |                     <execution> | ||||||
|  |                         <id>test-compile</id> | ||||||
|  |                         <phase>test-compile</phase> | ||||||
|  |                         <goals> | ||||||
|  |                             <goal>test-compile</goal> | ||||||
|  |                         </goals> | ||||||
|  |                     </execution> | ||||||
|  |                 </executions> | ||||||
|  |                 <configuration> | ||||||
|  |                     <jvmTarget>1.8</jvmTarget> | ||||||
|  |                 </configuration> | ||||||
|  |             </plugin> | ||||||
|  |         </plugins> | ||||||
|  |     </build> | ||||||
|  | 
 | ||||||
|  |     <properties> | ||||||
|  |         <kotlin.version>1.2.71</kotlin.version> | ||||||
|  |         <junit.platform.version>1.1.1</junit.platform.version> | ||||||
|  |         <junit.vintage.version>5.2.0</junit.vintage.version> | ||||||
|  |         <assertj.version>3.10.0</assertj.version> | ||||||
|  |     </properties> | ||||||
|  | 
 | ||||||
|  | </project> | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     for (ch in 'a'..'f') { | ||||||
|  |         print(ch) | ||||||
|  |     } | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     for (ch in 'f' downTo 'a') { | ||||||
|  |         print(ch) | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										21
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Color.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Color.kt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | enum class Color(val rgb: Int) { | ||||||
|  |     BLUE(0x0000FF), | ||||||
|  |     GREEN(0x008000), | ||||||
|  |     RED(0xFF0000), | ||||||
|  |     MAGENTA(0xFF00FF), | ||||||
|  |     YELLOW(0xFFFF00); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     println(Color.values().toList()); | ||||||
|  |     val red = Color.RED | ||||||
|  |     val yellow = Color.YELLOW | ||||||
|  |     val range = red..yellow | ||||||
|  | 
 | ||||||
|  |     println(range.contains(Color.MAGENTA)) | ||||||
|  |     println(range.contains(Color.BLUE)) | ||||||
|  |     println(range.contains(Color.GREEN)) | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Filter.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Filter.kt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  |     val r = 1..10 | ||||||
|  | 
 | ||||||
|  |     //Apply filter | ||||||
|  |     val f = r.filter { it -> it % 2 == 0 } | ||||||
|  |     println(f) | ||||||
|  | 
 | ||||||
|  |     //Map | ||||||
|  |     val m = r.map { it -> it * it } | ||||||
|  |     println(m) | ||||||
|  | 
 | ||||||
|  |     //Reduce | ||||||
|  |     val rdc = r.reduce { a, b -> a + b } | ||||||
|  |     println(rdc) | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     println((1..9).first) | ||||||
|  |     println((1..9 step 2).step) | ||||||
|  |     println((3..9).reversed().last) | ||||||
|  | } | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     val r = 1..20 | ||||||
|  |     println(r.min()) | ||||||
|  |     println(r.max()) | ||||||
|  |     println(r.sum()) | ||||||
|  |     println(r.average()) | ||||||
|  |     println(r.count()) | ||||||
|  | 
 | ||||||
|  |     val repeated = listOf(1, 1, 2, 4, 4, 6, 10) | ||||||
|  |     println(repeated.distinct()) | ||||||
|  | } | ||||||
							
								
								
									
										28
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Range.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Range.kt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     for (i in 1..9) { | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     for (i in 9 downTo 1) { | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     for (i in 1.rangeTo(9)) { | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     for (i in 9.downTo(1)) { | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     for (i in 1 until 9) { | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     (1..9).reversed().forEach { | ||||||
|  |         print(it) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     (1..9).reversed().step(3).forEach { | ||||||
|  |         print(it) | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Step.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								core-kotlin-2/src/main/kotlin/com/baeldung/range/Step.kt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     for(i in 1..9 step 2){ | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     println() | ||||||
|  | 
 | ||||||
|  |     for (i in 9 downTo 1 step 2){ | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | fun main(args: Array<String>) { | ||||||
|  | 
 | ||||||
|  |     for (i in 1 until 9) { | ||||||
|  |         print(i) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class CharRangeTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testCharRange() { | ||||||
|  |         assertEquals(listOf('a', 'b', 'c'), ('a'..'c').toList()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testCharDownRange() { | ||||||
|  |         assertEquals(listOf('c', 'b', 'a'), ('c'.downTo('a')).toList()) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertFalse | ||||||
|  | import kotlin.test.assertTrue | ||||||
|  | 
 | ||||||
|  | class ColorTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testEnumRange() { | ||||||
|  | 
 | ||||||
|  |         println(Color.values().toList()); | ||||||
|  |         val red = Color.RED | ||||||
|  |         val yellow = Color.YELLOW | ||||||
|  |         val range = red..yellow | ||||||
|  | 
 | ||||||
|  |         assertTrue { range.contains(Color.MAGENTA) } | ||||||
|  |         assertFalse { range.contains(Color.BLUE) } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,24 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class FilterTest { | ||||||
|  | 
 | ||||||
|  |     val r = 1..10 | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun filterTest() { | ||||||
|  |         assertEquals(listOf(2, 4, 6, 8, 10), r.filter { it -> it % 2 == 0 }.toList()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun mapTest() { | ||||||
|  |         assertEquals(listOf(1, 4, 9, 16, 25, 36, 49, 64, 81, 100), r.map { it -> it * it }.toList()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun reduceTest() { | ||||||
|  |         assertEquals(55, r.reduce { a, b -> a + b }) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class FirstLastTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testFirst() { | ||||||
|  |         assertEquals(1, (1..9).first) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testLast() { | ||||||
|  |         assertEquals(9, (1..9).last) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testStep() { | ||||||
|  |         assertEquals(2, (1..9 step 2).step) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,40 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class OtherRangeFunctionsTest { | ||||||
|  | 
 | ||||||
|  |     val r = 1..20 | ||||||
|  |     val repeated = listOf(1, 1, 2, 4, 4, 6, 10) | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testMin() { | ||||||
|  |         assertEquals(1, r.min()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testMax() { | ||||||
|  |         assertEquals(20, r.max()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testSum() { | ||||||
|  |         assertEquals(210, r.sum()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testAverage() { | ||||||
|  |         assertEquals(10.5, r.average()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testCount() { | ||||||
|  |         assertEquals(20, r.count()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testDistinct() { | ||||||
|  |         assertEquals(listOf(1, 2, 4, 6, 10), repeated.distinct()) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class RangeTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testRange() { | ||||||
|  |         assertEquals(listOf(1,2,3), (1.rangeTo(3).toList())) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testDownTo(){ | ||||||
|  |         assertEquals(listOf(3,2,1), (3.downTo(1).toList())) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testUntil(){ | ||||||
|  |         assertEquals(listOf(1,2), (1.until(3).toList())) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,12 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class ReverseRangeTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun reversedTest() { | ||||||
|  |         assertEquals(listOf(9, 6, 3), (1..9).reversed().step(3).toList()) | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								core-kotlin-2/src/test/kotlin/com/baeldung/range/StepTest.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								core-kotlin-2/src/test/kotlin/com/baeldung/range/StepTest.kt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class StepTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testStep() { | ||||||
|  |         assertEquals(listOf(1, 3, 5, 7, 9), (1..9 step 2).toList()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testStepDown() { | ||||||
|  |         assertEquals(listOf(9, 7, 5, 3, 1), (9 downTo 1 step 2).toList()) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,12 @@ | |||||||
|  | package com.baeldung.range | ||||||
|  | 
 | ||||||
|  | import org.junit.Test | ||||||
|  | import kotlin.test.assertEquals | ||||||
|  | 
 | ||||||
|  | class UntilRangeTest { | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun testUntil() { | ||||||
|  |         assertEquals(listOf(1, 2, 3, 4), (1 until 5).toList()) | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user