Files
vba/src/module/Test_Cache.bas
2026-04-16 19:13:22 +09:00

197 lines
4.8 KiB
QBasic

' ============================================================
' Module Name: Test_Cache
' Module Desc: Debug module to print cache contents to Test_Cache sheet
' Module Methods:
' - Test_PrintAllCaches
' - PrintM1CacheToSheet
' - PrintM1KukanDCacheToSheet
' - PrintM2CacheToSheet
' - PrintZ1CacheToSheet
' - PrintO1CacheToSheet
' ============================================================
' Test Cache Module
Sub Test_PrintAllCaches()
Call RefreshM1Cache
Call RefreshM1KukanDCache
Call RefreshM2Cache
Call RefreshZ1Cache
Call RefreshO1Cache
Dim ws As Worksheet
On Error Resume Next
Set ws = ThisWorkbook.Worksheets("Test_Cache")
If ws Is Nothing Then
Set ws = ThisWorkbook.Worksheets.Add
ws.Name = "Test_Cache"
End If
On Error GoTo 0
ws.Cells.ClearContents
Dim r As Long
r = 1
ws.Cells(r, 1).Value = "M1 Cache"
r = r + 1
Call PrintM1CacheToSheet(ws, r)
r = r + 1
ws.Cells(r, 1).Value = "M1_KukanD Cache"
r = r + 1
Call PrintM1KukanDCacheToSheet(ws, r)
r = r + 1
ws.Cells(r, 1).Value = "M2 Cache"
r = r + 1
Call PrintM2CacheToSheet(ws, r)
r = r + 1
ws.Cells(r, 1).Value = "Z1 Cache"
r = r + 1
Call PrintZ1CacheToSheet(ws, r)
r = r + 1
ws.Cells(r, 1).Value = "O1 Cache"
r = r + 1
Call PrintO1CacheToSheet(ws, r)
ws.Columns.AutoFit
End Sub
Private Sub PrintM1CacheToSheet(ws As Worksheet, ByRef r As Long)
If m1Cache Is Nothing Then
ws.Cells(r, 1).Value = "Nothing"
r = r + 1
Exit Sub
End If
ws.Cells(r, 1).Value = "Count: " & m1Cache.Count
r = r + 1
Dim k As Variant
For Each k In m1Cache.Keys
Dim v As Variant
v = m1Cache(k)
ws.Cells(r, 1).Value = k
ws.Cells(r, 2).Value = v(1)
ws.Cells(r, 3).Value = v(2)
ws.Cells(r, 4).Value = v(3)
r = r + 1
Next k
End Sub
Private Sub PrintM1KukanDCacheToSheet(ws As Worksheet, ByRef r As Long)
If m1KukanDCache Is Nothing Then
ws.Cells(r, 1).Value = "Nothing"
r = r + 1
Exit Sub
End If
ws.Cells(r, 1).Value = "Count: " & m1KukanDCache.Count
r = r + 1
Dim d As Variant
For Each d In m1KukanDCache.Keys
ws.Cells(r, 1).Value = d
r = r + 1
Dim inner As Object
Set inner = m1KukanDCache(d)
Dim f As Variant
For Each f In inner.Keys
ws.Cells(r, 2).Value = f
r = r + 1
Dim arr As Object
Set arr = inner(f)
Dim g As Variant
For Each g In arr.Keys
ws.Cells(r, 3).Value = g
r = r + 1
Next g
Next f
Next d
End Sub
Private Sub PrintM2CacheToSheet(ws As Worksheet, ByRef r As Long)
If m2Cache Is Nothing Then
ws.Cells(r, 1).Value = "Nothing"
r = r + 1
Exit Sub
End If
ws.Cells(r, 1).Value = "Count: " & m2Cache.Count
r = r + 1
Dim k As Variant
For Each k In m2Cache.Keys
ws.Cells(r, 1).Value = k
r = r + 1
Dim inner As Object
Set inner = m2Cache(k)
Dim kanshu As Variant
For Each kanshu In inner.Keys
ws.Cells(r, 2).Value = kanshu
r = r + 1
Dim innermost As Object
Set innermost = inner(kanshu)
Dim c As Variant
For Each c In innermost.Keys
ws.Cells(r, 3).Value = c
ws.Cells(r, 4).Value = innermost(c)
r = r + 1
Next c
Next kanshu
Next k
End Sub
Private Sub PrintZ1CacheToSheet(ws As Worksheet, ByRef r As Long)
If z1Cache Is Nothing Then
ws.Cells(r, 1).Value = "Nothing"
r = r + 1
Exit Sub
End If
ws.Cells(r, 1).Value = "Count: " & z1Cache.Count
r = r + 1
Dim k As Variant
For Each k In z1Cache.Keys
Dim v As Variant
v = z1Cache(k)
ws.Cells(r, 1).Value = k
ws.Cells(r, 2).Value = v(0)
r = r + 1
Next k
End Sub
Private Sub PrintO1CacheToSheet(ws As Worksheet, ByRef r As Long)
If o1Cache Is Nothing Then
ws.Cells(r, 1).Value = "Nothing"
r = r + 1
Exit Sub
End If
ws.Cells(r, 1).Value = "Count: " & o1Cache.Count
r = r + 1
Dim c As Variant
For Each c In o1Cache.Keys
ws.Cells(r, 1).Value = c
r = r + 1
Dim inner As Object
Set inner = o1Cache(c)
Dim e As Variant
For Each e In inner.Keys
ws.Cells(r, 2).Value = e
r = r + 1
Dim arr As Object
Set arr = inner(e)
Dim f As Variant
For Each f In arr.Keys
ws.Cells(r, 3).Value = f
r = r + 1
Next f
Next e
Next c
End Sub