Skip to content
Snippets Groups Projects
Commit 2868f475 authored by Simon Wang's avatar Simon Wang
Browse files

Initial commit

parent a3d80221
No related branches found
No related tags found
No related merge requests found
Pipeline #82308 failed
/*
* This Kotlin source file was generated by the Gradle "init" task.
*/
package cs.list
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.*
class LinkedListTest {
@Test fun testConstructor() {
val list = LinkedList()
assertEquals(0, list.size())
}
@Test fun testAdd() {
val list = LinkedList()
list.add("one")
assertEquals(1, list.size())
assertEquals("one", list.get(0))
list.add("two")
assertEquals(2, list.size())
assertEquals("two", list.get(1))
}
@Test fun testRemove() {
val list = LinkedList()
list.add("one")
list.add("two")
assertTrue(list.remove("one"))
assertEquals(1, list.size())
assertEquals("two", list.get(0))
assertTrue(list.remove("two"))
assertEquals(0, list.size())
}
@Test fun testRemoveMissing() {
val list = LinkedList()
list.add("one")
list.add("two")
assertFalse(list.remove("three"))
assertEquals(2, list.size())
}
}
File added
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user manual at https://docs.gradle.org/7.6/userguide/multi_project_builds.html
*/
rootProject.name = "CS 346"
include("app", "list", "utilities")
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
id("cs.kotlin-library-conventions")
}
dependencies {
api(project(":list"))
}
/*
* This Kotlin source file was generated by the Gradle 'init' task.
*/
package cs.utilities
import cs.list.LinkedList
class JoinUtils {
companion object {
fun join(source: LinkedList): String {
val result = StringBuilder()
for (i in 0 until source.size()) {
if (result.isNotEmpty()) {
result.append(" ")
}
result.append(source.get(i))
}
return result.toString()
}
}
}
/*
* This Kotlin source file was generated by the Gradle 'init' task.
*/
package cs.utilities
import cs.list.LinkedList
class SplitUtils {
companion object {
fun split(source: String): LinkedList {
var lastFind = 0
val result = LinkedList()
var currentFind = source.indexOf(" ", lastFind)
while (currentFind != -1) {
var token = source.substring(lastFind)
if (currentFind != -1) {
token = token.substring(0, currentFind - lastFind)
}
addIfValid(token, result)
lastFind = currentFind + 1
currentFind = source.indexOf(" ", lastFind)
}
val token = source.substring(lastFind)
addIfValid(token, result)
return result
}
private fun addIfValid(token: String, list: LinkedList) {
if (isTokenValid(token)) {
list.add(token)
}
}
private fun isTokenValid(token: String): Boolean {
return token.isNotEmpty()
}
}
}
/*
* This Kotlin source file was generated by the Gradle 'init' task.
*/
package cs.utilities
import cs.list.LinkedList
class StringUtils {
companion object {
fun join(source: LinkedList): String {
return JoinUtils.join(source)
}
fun split(source: String): LinkedList {
return SplitUtils.split(source)
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment