Finished implementing the stackstack
This commit is contained in:
parent
c0393d0ca1
commit
c9b3a999bd
4 changed files with 17 additions and 0 deletions
|
@ -73,6 +73,7 @@ func Transfert*(toss: var Stack, soss: var Stack, n: int) =
|
||||||
soss.height = 0
|
soss.height = 0
|
||||||
|
|
||||||
func Discard*(s: var Stack, n: int) =
|
func Discard*(s: var Stack, n: int) =
|
||||||
|
## Implements a discard mechanism intended for use with the '}'(aka end) stackstack command
|
||||||
s.height -= n
|
s.height -= n
|
||||||
if s.height < 0:
|
if s.height < 0:
|
||||||
s.height = 0
|
s.height = 0
|
||||||
|
|
|
@ -25,6 +25,12 @@ func PushVector*(ss: var StackStack, v: tuple[x, y: int]) =
|
||||||
func Clear*(ss: var StackStack) =
|
func Clear*(ss: var StackStack) =
|
||||||
ss.head[].Clear()
|
ss.head[].Clear()
|
||||||
|
|
||||||
|
func Duplicate*(ss: var StackStack) =
|
||||||
|
ss.head[].Duplicate()
|
||||||
|
|
||||||
|
func Swap*(ss: var StackStack) =
|
||||||
|
ss.head[].Swap()
|
||||||
|
|
||||||
func Begin*(ss: var StackStack, v: tuple[x, y: int]) =
|
func Begin*(ss: var StackStack, v: tuple[x, y: int]) =
|
||||||
inc ss.height
|
inc ss.height
|
||||||
let soss = ss.head
|
let soss = ss.head
|
||||||
|
|
|
@ -110,6 +110,8 @@ suite "Stack":
|
||||||
check empty.data[1] == 0
|
check empty.data[1] == 0
|
||||||
check empty.data[2] == 0
|
check empty.data[2] == 0
|
||||||
check empty.data[3] == 0
|
check empty.data[3] == 0
|
||||||
|
empty[].Transfert(empty2[], 32)
|
||||||
|
check empty.size == 64
|
||||||
empty = NewStack()
|
empty = NewStack()
|
||||||
var some = NewStack()
|
var some = NewStack()
|
||||||
some[].Push(2)
|
some[].Push(2)
|
||||||
|
|
|
@ -22,6 +22,14 @@ suite "StackStack":
|
||||||
empty[].Push(3)
|
empty[].Push(3)
|
||||||
empty[].Clear()
|
empty[].Clear()
|
||||||
check empty[].Pop() == 0
|
check empty[].Pop() == 0
|
||||||
|
test "Duplicate":
|
||||||
|
var empty = NewStackStack()
|
||||||
|
empty[].Clear()
|
||||||
|
check empty[].Pop() == 0
|
||||||
|
test "Swap":
|
||||||
|
var empty = NewStackStack()
|
||||||
|
empty[].Swap()
|
||||||
|
check empty[].Pop() == 0
|
||||||
test "Begin":
|
test "Begin":
|
||||||
var empty = NewStackStack()
|
var empty = NewStackStack()
|
||||||
empty[].Begin((1, 2))
|
empty[].Begin((1, 2))
|
||||||
|
|
Reference in a new issue