Skip to content

Commit b70f863

Browse files
committed
strings
1 parent cb2462c commit b70f863

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

main.kar

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
xlit x1 5.234
22
xlit x2 -9.234
33
xmul x1 x2
4-
printr r5
4+
printr r5
5+
6+
// {MemoryAddress(address=0)=MemoryValue(value=73), MemoryAddress(address=1)=MemoryValue(value=32), MemoryAddress(address=2)=MemoryValue(value=108),
7+
MemoryAddress(address=3)=MemoryValue(value=111), MemoryAddress(address=4)=MemoryValue(value=118), MemoryAddress(address=5)=MemoryValue(value=101),
8+
MemoryAddress(address=6)=MemoryValue(value=32), MemoryAddress(address=7)=MemoryValue(value=112), MemoryAddress(address=8)=MemoryValue(value=117),
9+
MemoryAddress(address=9)=MemoryValue(value=112), MemoryAddress(address=10)=MemoryValue(value=112), MemoryAddress(address=11)=MemoryValue(value=105),
10+
MemoryAddress(address=12)=MemoryValue(value=101), MemoryAddress(address=13)=MemoryValue(value=115), MemoryAddress(address=14)=MemoryValue(value=33),
11+
MemoryAddress(address=15)=MemoryValue(value=32), MemoryAddress(address=16)=MemoryValue(value=74), MemoryAddress(address=17)=MemoryValue(value=107),
12+
MemoryAddress(address=18)=MemoryValue(value=0)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package internals.instructions.strings
2+
3+
import data.memory.MemoryAddress
4+
import data.registers.RegisterType
5+
import internals.Vm
6+
import kotlin.streams.toList
7+
import kotlin.test.Test
8+
import kotlin.test.assertEquals
9+
10+
class StringsTest {
11+
val vm = Vm()
12+
val s = vm.strings
13+
14+
@Test
15+
fun `Store String Test General`() {
16+
val testString = "I love puppies! Jk"
17+
s.str(targetAddress = RegisterType.G5, string = testString)
18+
testString.chars().toList().forEachIndexed { index, char ->
19+
assertEquals(vm.internalMemory.memory[MemoryAddress(index.toLong())]!!.value!!.toInt(), char)
20+
}
21+
assertEquals(
22+
vm.internalMemory.memory[MemoryAddress(testString.length.toLong())]!!.value,
23+
0
24+
) // Check null terminator explicitly
25+
}
26+
}

0 commit comments

Comments
 (0)