-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtui_elements_test.go
283 lines (263 loc) · 47.6 KB
/
tui_elements_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
package consolizer
import (
"github.com/gdamore/tcell/v2"
"github.com/stretchr/testify/assert"
"github.com/supercom32/consolizer/constants"
"github.com/supercom32/consolizer/internal/memory"
"github.com/supercom32/consolizer/internal/recast"
"github.com/supercom32/consolizer/types"
"testing"
)
func TestGetDarkenedCharacterEntry(test *testing.T) {
characterEntry := types.NewCharacterEntry()
characterEntry.AttributeEntry.ForegroundColor = constants.ColorType(tcell.NewRGBColor(int32(255), int32(255), int32(255)))
darkenedCharacterEntry := GetDarkenedCharacterEntry(&characterEntry, 0.5)
redIndex, greenIndex, blueIndex := GetRGBColorComponents(darkenedCharacterEntry.AttributeEntry.ForegroundColor)
obtainedResult := recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult := recast.GetArrayOfInterfaces(int32(127), int32(127), int32(127))
assert.Equalf(test, obtainedResult, expectedResult, "Darkening Character entry foreground color to 50 percent failed!")
characterEntry.AttributeEntry.BackgroundColor = constants.ColorType(tcell.NewRGBColor(int32(127), int32(127), int32(127)))
darkenedCharacterEntry = GetDarkenedCharacterEntry(&characterEntry, 0.5)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(darkenedCharacterEntry.AttributeEntry.BackgroundColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(63), int32(63), int32(63))
assert.Equalf(test, obtainedResult, expectedResult, "Darkening Character entry background color to 50 percent failed!")
}
func TestColorDarkening(test *testing.T) {
testColor := GetDarkenedColor(constants.ColorType(tcell.NewRGBColor(255, 255, 255)), 0.5)
redIndex, greenIndex, blueIndex := GetRGBColorComponents(testColor)
obtainedResult := recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult := recast.GetArrayOfInterfaces(int32(127), int32(127), int32(127))
assert.Equalf(test, obtainedResult, expectedResult, "Darkening color to 50 percent failed!")
testColor = GetDarkenedColor(constants.ColorType(tcell.NewRGBColor(127, 127, 127)), 0.5)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(testColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(63), int32(63), int32(63))
assert.Equalf(test, obtainedResult, expectedResult, "Darkening color to 50 percent failed!")
testColor = GetDarkenedColor(constants.ColorType(tcell.NewRGBColor(127, 127, 127)), 0.0)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(testColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(0), int32(0), int32(0))
assert.Equalf(test, obtainedResult, expectedResult, "Darkening color to 0 percent failed!")
testColor = GetDarkenedColor(constants.ColorType(tcell.NewRGBColor(127, 127, 127)), 1.0)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(testColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(127), int32(127), int32(127))
assert.Equalf(test, obtainedResult, expectedResult, "Darkening color to 100 percent failed!")
}
func TestColorTransitions(test *testing.T) {
sourceColor := constants.ColorType(tcell.NewRGBColor(255, 0, 0))
targetColor := constants.ColorType(tcell.NewRGBColor(0, 255, 255))
newColor := GetTransitionedColor(sourceColor, targetColor, 0.3)
redIndex, greenIndex, blueIndex := GetRGBColorComponents(newColor)
obtainedResult := recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult := recast.GetArrayOfInterfaces(int32(178), int32(77), int32(77))
assert.Equalf(test, expectedResult, obtainedResult, "Transitioning color by 30% failed!")
sourceColor = constants.ColorType(tcell.NewRGBColor(255, 255, 255))
targetColor = constants.ColorType(tcell.NewRGBColor(0, 0, 0))
newColor = GetTransitionedColor(sourceColor, targetColor, 0.5)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(newColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(127), int32(127), int32(127))
assert.Equalf(test, expectedResult, obtainedResult, "Transitioning color by 50% failed!")
sourceColor = constants.ColorType(tcell.NewRGBColor(255, 255, 255))
targetColor = constants.ColorType(tcell.NewRGBColor(0, 200, 0))
newColor = GetTransitionedColor(sourceColor, targetColor, 0.5)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(newColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(127), int32(227), int32(127))
assert.Equalf(test, expectedResult, obtainedResult, "Transitioning color by 50% failed!")
sourceColor = constants.ColorType(tcell.NewRGBColor(0, 50, 100))
targetColor = constants.ColorType(tcell.NewRGBColor(150, 200, 255))
newColor = GetTransitionedColor(sourceColor, targetColor, 0.5)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(newColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(75), int32(125), int32(178))
assert.Equalf(test, expectedResult, obtainedResult, "Transitioning color by 50% failed!")
sourceColor = constants.ColorType(tcell.NewRGBColor(0, 50, 100))
targetColor = constants.ColorType(tcell.NewRGBColor(150, 200, 255))
newColor = GetTransitionedColor(sourceColor, targetColor, 1.2)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(newColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(180), int32(230), int32(255))
assert.Equalf(test, expectedResult, obtainedResult, "Transitioning color by 120% failed!")
sourceColor = constants.ColorType(tcell.NewRGBColor(0, 50, 100))
targetColor = constants.ColorType(tcell.NewRGBColor(150, 200, 255))
newColor = GetTransitionedColor(sourceColor, targetColor, -0.2)
redIndex, greenIndex, blueIndex = GetRGBColorComponents(newColor)
obtainedResult = recast.GetArrayOfInterfaces(redIndex, greenIndex, blueIndex)
expectedResult = recast.GetArrayOfInterfaces(int32(0), int32(20), int32(69))
assert.Equalf(test, expectedResult, obtainedResult, "Transitioning color by -20% failed!")
}
func TestDrawButton(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
layer2 := AddLayer(3, 2, 30, 20, 2, &layer1)
Layer(layer1)
Color(4, 6)
layer1.FillLayer("a1a2a3a4a5")
Layer(layer2)
Color(3, 11)
layer2.FillLayer("b1b2b3b4b5")
layer2.AddButton("ButtonText", styleEntry, 2, 2, 20, 7, true)
button2 := layer2.AddButton("ButtonText", styleEntry, 2, 10, 20, 7, true)
memory.Button.Entries[layer2.layerAlias][button2.buttonAlias].IsPressed = true
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjFiMmIzYjRiNWIxYjJiM2I0YjViMWIyYjNiNGI1G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjFiMmIzYjRiNWIxYjJiM2I0YjViMWIyYjNiNGI1G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjEbWzM4OzI7MjU1OzI1NTsyNTVtG1s0ODsyOzE5MjsxOTI7MTkybeKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgBtbMzg7MjswOzA7MG3ilJAbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjJiM2I0YjUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYRtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMRtbMzg7MjsyNTU7MjU1OzI1NW0bWzQ4OzI7MTkyOzE5MjsxOTJt4pSCG1szODsyOzA7MDswbSAgICAgICAgICAgICAgICAgIOKUghtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMmIzYjRiNRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTFhG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIxG1szODsyOzI1NTsyNTU7MjU1bRtbNDg7MjsxOTI7MTkyOzE5Mm3ilIIbWzM4OzI7MDswOzBtICAgICAgICAgICAgICAgICAg4pSCG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIyYjNiNGI1G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjEbWzM4OzI7MjU1OzI1NTsyNTVtG1s0ODsyOzE5MjsxOTI7MTkybeKUghtbMzg7MjswOzA7MG0gICAgQnV0dG9uVGV4dCAgICDilIIbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjJiM2I0YjUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYRtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMRtbMzg7MjsyNTU7MjU1OzI1NW0bWzQ4OzI7MTkyOzE5MjsxOTJt4pSCG1szODsyOzA7MDswbSAgICAgICAgICAgICAgICAgIOKUghtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMmIzYjRiNRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTFhG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIxG1szODsyOzI1NTsyNTU7MjU1bRtbNDg7MjsxOTI7MTkyOzE5Mm3ilIIbWzM4OzI7MDswOzBtICAgICAgICAgICAgICAgICAg4pSCG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIyYjNiNGI1G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjEbWzM4OzI7MjU1OzI1NTsyNTVtG1s0ODsyOzE5MjsxOTI7MTkybeKUlBtbMzg7MjswOzA7MG3ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjJiM2I0YjUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYRtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMWIyYjNiNGI1YjFiMmIzYjRiNWIxYjJiM2I0YjUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYRtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMRtbMzg7MjswOzA7MG0bWzQ4OzI7MTkyOzE5MjsxOTJt4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAG1szODsyOzI1NTsyNTU7MjU1beKUkBtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMmIzYjRiNRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTFhG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIxG1szODsyOzA7MDswbRtbNDg7MjsxOTI7MTkyOzE5Mm3ilIIgICAgICAgICAgICAgICAgICAbWzM4OzI7MjU1OzI1NTsyNTVt4pSCG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIyYjNiNGI1G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjEbWzM4OzI7MDswOzBtG1s0ODsyOzE5MjsxOTI7MTkybeKUgiAgICAgICAgICAgICAgICAgIBtbMzg7MjsyNTU7MjU1OzI1NW3ilIIbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjJiM2I0YjUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYRtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMRtbMzg7MjswOzA7MG0bWzQ4OzI7MTkyOzE5MjsxOTJt4pSCICAgIEJ1dHRvblRleHQgICAgG1szODsyOzI1NTsyNTU7MjU1beKUghtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMmIzYjRiNRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTFhG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIxG1szODsyOzA7MDswbRtbNDg7MjsxOTI7MTkyOzE5Mm3ilIIgICAgICAgICAgICAgICAgICAbWzM4OzI7MjU1OzI1NTsyNTVt4pSCG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIyYjNiNGI1G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjEbWzM4OzI7MDswOzBtG1s0ODsyOzE5MjsxOTI7MTkybeKUgiAgICAgICAgICAgICAgICAgIBtbMzg7MjsyNTU7MjU1OzI1NW3ilIIbWzM4OzI7MTI4OzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYjJiM2I0YjUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYRtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMRtbMzg7MjswOzA7MG0bWzQ4OzI7MTkyOzE5MjsxOTJt4pSUG1szODsyOzI1NTsyNTU7MjU1beKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmBtbMzg7MjsxMjg7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1iMmIzYjRiNRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTFhG1szODsyOzEyODsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWIxYjJiM2I0YjViMWIyYjNiNGI1YjFiMmIzYjRiNRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtCg=="
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}
func TestDrawFrameLabel(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
Color(4, 6)
layer1.FillLayer("a1a2a3a4a5")
styleEntry.LineDrawingTextForegroundColor = GetRGBColor(62, 128, 128)
styleEntry.LineDrawingTextBackgroundColor = GetRGBColor(0, 0, 200)
styleEntry.LineDrawingTextLabelColor = GetRGBColor(255, 255, 255)
layer1.DrawFrameLabel(styleEntry, "My Frame", 1, 1)
layer1.DrawFrameLabel(styleEntry, "My Frame", -7, 3)
layer1.DrawFrameLabel(styleEntry, "My Frame", layerWidth-7, 3)
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hG1szODsyOzYyOzEyODsxMjhtG1s0ODsyOzA7MDsyMDBtWyAbWzM4OzI7MjU1OzI1NTsyNTVtTXkgRnJhbWUbWzM4OzI7NjI7MTI4OzEyOG0gXRtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzI1NTsyNTU7MjU1bRtbNDg7MjswOzA7MjAwbWFtZRtbMzg7Mjs2MjsxMjg7MTI4bSBdG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0zYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhG1szODsyOzYyOzEyODsxMjhtG1s0ODsyOzA7MDsyMDBtWyAbWzM4OzI7MjU1OzI1NTsyNTVtTXkgRnIbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQo="
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}
func TestDrawFrame(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
styleEntry.LineDrawingTextForegroundColor = GetRGBColor(255, 0, 255)
styleEntry.LineDrawingTextBackgroundColor = GetRGBColor(0, 0, 255)
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
Layer(layer1)
Color(4, 6)
layer1.FillLayer("a1a2a3a4a5")
layer1.DrawFrame(styleEntry, false, 2, 2, 10, 10, false)
layer1.DrawFrame(styleEntry, true, 15, 2, 10, 10, false)
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIzilIDilIDilIDilIDilIDilIDilIDilIAbWzM4OzI7MjU1OzA7MjU1beKUkBtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIzilIDilIDilIDilIDilIDilIDilIDilIAbWzM4OzI7MDswOzBt4pSQG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0zYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExG1szODsyOzA7MDswbRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNWEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWE0YTVhMWEyG1szODsyOzA7MDswbRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTVhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hNGE1YTFhMhtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTNhNGE1YTFhMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTEbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTRhNWExYTIbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0zYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExG1szODsyOzA7MDswbRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNWEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWE0YTVhMWEyG1szODsyOzA7MDswbRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTVhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hNGE1YTFhMhtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTNhNGE1YTFhMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTEbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTRhNWExYTIbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0zYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWExG1szODsyOzA7MDswbRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtMmEzYTRhNWEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWE0YTVhMWEyG1szODsyOzA7MDswbRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTJhM2E0YTVhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hNGE1YTFhMhtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bTNhNGE1YTFhMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtYTEbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDsyNTVt4pSUG1szODsyOzI1NTswOzI1NW3ilIDilIDilIDilIDilIDilIDilIDilIDilJgbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MDsxMjg7MTI4bWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSUG1szODsyOzA7MDswbeKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmBtbMzg7MjswOzA7MTI4bRtbNDg7MjswOzEyODsxMjhtM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0K"
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}
func TestDrawBorder(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
styleEntry.LineDrawingTextForegroundColor = GetRGBColor(255, 0, 255)
styleEntry.LineDrawingTextBackgroundColor = GetRGBColor(0, 0, 255)
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
Layer(layer1)
Color(4, 6)
layer1.FillLayer("a1a2a3a4a5")
layer1.DrawBorder(styleEntry, 2, 2, 10, 10, false)
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG0yYTNhNGE1YRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzA7MTI4OzEyOG1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0K"
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}
func TestDrawWindow(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
styleEntry.LineDrawingTextForegroundColor = GetRGBColor(255, 0, 255)
styleEntry.LineDrawingTextBackgroundColor = GetRGBColor(0, 0, 255)
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
layer2 := AddLayer(2, 2, layerWidth, layerHeight, 2, nil)
layer3 := AddLayer(4, 4, layerWidth, layerHeight, 3, nil)
layer4 := AddLayer(0, 0, layerWidth, layerHeight, 4, nil)
Layer(layer1)
Color(4, 13)
layer1.FillLayer("a1a2a3a4a5")
Layer(layer2)
Color(8, 10)
layer2.FillLayer("a1a2a3a4a5")
Layer(layer3)
Color(2, 11)
layer3.FillLayer("a1a2a3a4a5")
Layer(layer4)
Color(14, 15)
layer4.DrawWindow(styleEntry, 0, 0, 10, 10, false)
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCICAgICAgICDilIIbWzM4OzI7MDswOzY0bRtbNDg7MjsxMjc7MDsxMjdtYTEbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUgiAgICAgICAg4pSCG1szODsyOzY0OzY0OzY0bRtbNDg7MjswOzEyNzswbWE1G1szODsyOzEyODsxMjg7MTI4bRtbNDg7MjswOzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTQbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUgiAgICAgICAg4pSCG1szODsyOzY0OzY0OzY0bRtbNDg7MjswOzEyNzswbWE1G1szODsyOzEyODsxMjg7MTI4bRtbNDg7MjswOzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTQbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUgiAgICAgICAg4pSCG1szODsyOzA7NjQ7MG0bWzQ4OzI7MTI3OzEyNzswbWE0G1szODsyOzA7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1hNWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzG1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIgICAgICAgIOKUghtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hNBtbMzg7MjswOzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCICAgICAgICDilIIbWzM4OzI7MDs2NDswbRtbNDg7MjsxMjc7MTI3OzBtYTQbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTMbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUgiAgICAgICAg4pSCG1szODsyOzA7NjQ7MG0bWzQ4OzI7MTI3OzEyNzswbWE0G1szODsyOzA7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1hNWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzG1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIgICAgICAgIOKUghtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hNBtbMzg7MjswOzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYG1szODsyOzA7NjQ7MG0bWzQ4OzI7MTI3OzEyNzswbWE0G1szODsyOzA7MTI4OzBtG1s0ODsyOzI1NTsyNTU7MG1hNWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzG1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTNhNBtbMzg7MjswOzEyODswbRtbNDg7MjsyNTU7MjU1OzBtYTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtCg=="
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}
func TestDrawShadow(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
styleEntry.LineDrawingTextForegroundColor = GetRGBColor(255, 0, 255)
styleEntry.LineDrawingTextBackgroundColor = GetRGBColor(0, 0, 255)
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
layer2 := AddLayer(2, 2, layerWidth, layerHeight, 2, nil)
layer3 := AddLayer(4, 4, layerWidth, layerHeight, 3, nil)
layer4 := AddLayer(0, 0, layerWidth, layerHeight, 4, nil)
Layer(layer1)
Color(4, 13)
layer1.FillLayer("a1a2a3a4a5")
Layer(layer2)
Color(8, 10)
layer2.FillLayer("a1a2a3a4a5")
Layer(layer3)
Color(2, 11)
layer3.FillLayer("a1a2a3a4a5")
Layer(layer4)
Color(14, 15)
layer4.DrawShadow(0, 0, 10, 10, 0.5)
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzA7MDs2NG0bWzQ4OzI7MTI3OzA7MTI3bWExYTJhM2E0YTUbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNRtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMWEyYTNhNGE1G1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzY0bRtbNDg7MjsxMjc7MDsxMjdtYTEbWzM4OzI7NjQ7NjQ7NjRtG1s0ODsyOzA7MTI3OzBtYTFhMmEzYTQbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDs2NG0bWzQ4OzI7MTI3OzA7MTI3bWExG1szODsyOzY0OzY0OzY0bRtbNDg7MjswOzEyNzswbWExYTJhM2E0G1szODsyOzEyODsxMjg7MTI4bRtbNDg7MjswOzI1NTswbWE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNBtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTMbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTMbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTMbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTMbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTMbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7NjRtG1s0ODsyOzEyNzswOzEyN21hMRtbMzg7Mjs2NDs2NDs2NG0bWzQ4OzI7MDsxMjc7MG1hMRtbMzg7MjswOzY0OzBtG1s0ODsyOzEyNzsxMjc7MG1hMWEyYTMbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtChtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTEbWzM4OzI7MTI4OzEyODsxMjhtG1s0ODsyOzA7MjU1OzBtYTEbWzM4OzI7MDsxMjg7MG0bWzQ4OzI7MjU1OzI1NTswbWExYTJhM2E0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhMxtbMzg7MjswOzA7MG0bWzQ4OzI7MDswOzBtCg=="
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}
func TestDrawLines(test *testing.T) {
commonResource.isDebugEnabled = true
layerWidth := 40
layerHeight := 20
styleEntry := types.NewTuiStyleEntry()
styleEntry.LineDrawingTextForegroundColor = GetRGBColor(255, 0, 255)
styleEntry.LineDrawingTextBackgroundColor = GetRGBColor(0, 0, 255)
InitializeTerminal(layerWidth, layerHeight)
layer1 := AddLayer(0, 0, layerWidth, layerHeight, 1, nil)
Layer(layer1)
Color(4, 13)
layer1.FillLayer("a1a2a3a4a5")
layer1.DrawBorder(styleEntry, 10, 4, 10, 10, false)
layer1.DrawHorizontalLine(styleEntry, 7, 6, 15, true)
layer1.DrawHorizontalLine(styleEntry, 7, 8, 15, false)
layer1.DrawHorizontalLine(styleEntry, 10, 10, 10, true)
layer1.DrawVerticalLine(styleEntry, 12, 2, 15, false)
layer1.DrawVerticalLine(styleEntry, 14, 2, 15, true)
layer1.DrawVerticalLine(styleEntry, 16, 4, 10, true)
layer1.DrawVerticalLine(styleEntry, 5, -5, 10, true)
layer1.DrawVerticalLine(styleEntry, 5, 15, 10, true)
layer1.DrawHorizontalLine(styleEntry, -5, 5, 10, true)
layer1.DrawHorizontalLine(styleEntry, 35, 5, 10, true)
UpdateDisplay(false)
layerEntry := commonResource.screenLayer
obtainedValue := layerEntry.GetBasicAnsiStringAsBase64()
expectedValue := "G1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hMWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hMWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hNGE1YTFhMmEzYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hMWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hNGE1YTEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtMhtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSsG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW0zYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1szODsyOzA7MDswbRtbNDg7MjswOzA7MG0KG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hMWEyYRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW1hNGE1YTEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtMhtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW0zYTRhNWExYTJhM2E0YTVhMWEyYTNhNGE1G1sz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bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW0yG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bTMbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtNGEbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUghtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhM2E0YTUbWzM4OzI7MjU1OzA7MjU1bRtbNDg7MjswOzA7MjU1beKUlOKUgOKUguKUgOKUvOKUgOKUtOKUgOKUgOKUmBtbMzg7MjswOzA7MTI4bRtbNDg7MjsyNTU7MDsyNTVtYTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhM2E0YTVhMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW0yG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilKwbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWE0YTVhMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW0yG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWE0YTVhMRtbMzg7MjsyNTU7MDsyNTVtG1s0ODsyOzA7MDsyNTVt4pSCG1szODsyOzA7MDsxMjhtG1s0ODsyOzI1NTswOzI1NW0yG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilLQbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQobWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWExYTJhG1szODsyOzI1NTswOzI1NW0bWzQ4OzI7MDswOzI1NW3ilIIbWzM4OzI7MDswOzEyOG0bWzQ4OzI7MjU1OzA7MjU1bWE0YTVhMWEyYTNhNGE1YTFhMmEzYTRhNWExYTJhM2E0YTUbWzM4OzI7MDswOzBtG1s0ODsyOzA7MDswbQo="
assert.Equalf(test, expectedValue, obtainedValue, "The updated screen does not match the master original!")
}