Преглед на файлове

Merge pull request #333 from woodzn/main

Update 90_chunked_array2d.py
BLUELOVETH преди 1 година
родител
ревизия
ad1b278a9b
променени са 1 файла, в които са добавени 37 реда и са изтрити 7 реда
  1. 37 7
      tests/90_chunked_array2d.py

+ 37 - 7
tests/90_chunked_array2d.py

@@ -1,13 +1,43 @@
-from array2d import chunked_array2d
+import array2d
 from linalg import vec2i
 from linalg import vec2i
 
 
-a = chunked_array2d(4, default=0)
 
 
-print(iter(a))
-print(list(a))
+def on_builder(a:vec2i):
+    return str(a)
+    pass
 
 
-a[vec2i.ONE] = 1
+default = 0
+a = array2d.chunked_array2d(16, default,on_builder)
+assert a.chunk_size == 16
 
 
-print(a.view().render())
-print(list(a))
+a[vec2i(16, 16)] = 16
+a[vec2i(15, 16)] = 15
+assert a[vec2i(16, 16)] == 16
+assert a[vec2i(15, 16)] == 15
+assert a[vec2i(16, 15)] == default
 
 
+a1,a2=a.world_to_chunk(vec2i(15,16))
+
+assert a.remove_chunk(a1)== True
+assert a[vec2i(15, 16)] == default
+
+assert a.get_context(vec2i(1,1))==on_builder(vec2i(1,1))
+
+assert a.view().tolist()==[
+    [16 if i==0 and j==0 else 0 for j in range(16)] for i in range(16)
+]
+assert a.view_rect(vec2i(15,15),4,4).tolist()==[
+    [0,0,0,0],
+    [0,16,0,0],
+    [0,0,0,0],
+    [0,0,0,0]
+]
+a[vec2i(15, 16)] = 15
+assert a.view_chunk(a1).tolist()==[
+    [15 if i==0 and j==15 else 0 for j in range(16)] for i in range(16)
+]
+a.clear()
+
+assert a[vec2i(16, 16)] == default
+assert a[vec2i(15, 16)] == default
+assert a[vec2i(16, 15)] == default