Files
LeetCode-Go/leetcode/1670.Design-Front-Middle-Back-Queue/1670. Design Front Middle Back Queue_test.go

113 lines
4.1 KiB
Go

package leetcode
import (
"fmt"
"testing"
)
func Test_Problem1670(t *testing.T) {
obj := Constructor()
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushFront(1)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushBack(2)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
obj.PushMiddle(3)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
obj.PushMiddle(4)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
param1 := obj.PopFront()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopBack()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopFront()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
fmt.Printf("-----------------------------------------------------------------\n")
obj = Constructor()
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushFront(1)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushFront(2)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushFront(3)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushFront(4)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
param1 = obj.PopBack()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopBack()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopBack()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopBack()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
fmt.Printf("-----------------------------------------------------------------\n")
obj = Constructor()
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushMiddle(1)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
obj.PushMiddle(2)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
obj.PushMiddle(3)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
fmt.Printf("-----------------------------------------------------------------\n")
obj = Constructor()
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushMiddle(8)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopFront()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopBack()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
obj.PushMiddle(1)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
obj.PushMiddle(10)
fmt.Printf("obj = %v\n", MList2Ints(&obj))
fmt.Printf("-----------------------------------------------------------------\n")
obj = Constructor()
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v\n", param1, MList2Ints(&obj))
obj.PushMiddle(3)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushFront(6)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushMiddle(6)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
obj.PushMiddle(3)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v %v\n", param1, MList2Ints(&obj), obj)
obj.PushMiddle(7)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
param1 = obj.PopMiddle()
fmt.Printf("param1 = %v obj = %v %v\n", param1, MList2Ints(&obj), obj)
obj.PushMiddle(8)
fmt.Printf("obj = %v %v\n", MList2Ints(&obj), obj)
// ["FrontMiddleBackQueue","popMiddle","pushMiddle","pushFront","pushMiddle","pushMiddle","popMiddle","pushMiddle","popMiddle","pushMiddle"]
// [[],[],[3],[6],[6],[3],[],[7],[],[8]]
}
func MList2Ints(this *FrontMiddleBackQueue) []int {
array := []int{}
for e := this.list.Front(); e != nil; e = e.Next() {
value, _ := e.Value.(int)
array = append(array, value)
}
return array
}