@file:Suppress("LocalVariableName") package jp.juggler.apng import java.io.BufferedInputStream import java.io.File import java.io.FileInputStream import kotlin.test.Test import kotlin.test.assertEquals @Suppress("LargeClass") class TestApng { companion object { private val imageData = intArrayOf( 0xffff, 0xffff, 0x0, 0xf7bd, 0xffff, 0x0, 0xef7b, 0xffff, 0x0, 0xe739, 0xffff, 0x0, 0xdef7, 0xffff, 0x0, 0xd6b5, 0xffff, 0x0, 0xce73, 0xffff, 0x0, 0xc631, 0xffff, 0x0, 0xbdef, 0xffff, 0x0, 0xb5ad, 0xffff, 0x0, 0xad6b, 0xffff, 0x0, 0xa529, 0xffff, 0x0, 0x9ce7, 0xffff, 0x0, 0x94a5, 0xffff, 0x0, 0x8c63, 0xffff, 0x0, 0x8421, 0xffff, 0x0, 0x7bde, 0xffff, 0x0, 0x739c, 0xffff, 0x0, 0x6b5a, 0xffff, 0x0, 0x6318, 0xffff, 0x0, 0x5ad6, 0xffff, 0x0, 0x5294, 0xffff, 0x0, 0x4a52, 0xffff, 0x0, 0x4210, 0xffff, 0x0, 0x39ce, 0xffff, 0x0, 0x318c, 0xffff, 0x0, 0x294a, 0xffff, 0x0, 0x2108, 0xffff, 0x0, 0x18c6, 0xffff, 0x0, 0x1084, 0xffff, 0x0, 0x842, 0xffff, 0x0, 0x0, 0xffff, 0x0, 0xffff, 0xf7bd, 0x0, 0xf7bd, 0xf7bd, 0x0, 0xef7b, 0xf7bd, 0x0, 0xe739, 0xf7bd, 0x0, 0xdef7, 0xf7bd, 0x0, 0xd6b5, 0xf7bd, 0x0, 0xce73, 0xf7bd, 0x0, 0xc631, 0xf7bd, 0x0, 0xbdef, 0xf7bd, 0x0, 0xb5ad, 0xf7bd, 0x0, 0xad6b, 0xf7bd, 0x0, 0xa529, 0xf7bd, 0x0, 0x9ce7, 0xf7bd, 0x0, 0x94a5, 0xf7bd, 0x0, 0x8c63, 0xf7bd, 0x0, 0x8421, 0xf7bd, 0x0, 0x7bde, 0xf7bd, 0x0, 0x739c, 0xf7bd, 0x0, 0x6b5a, 0xf7bd, 0x0, 0x6318, 0xf7bd, 0x0, 0x5ad6, 0xf7bd, 0x0, 0x5294, 0xf7bd, 0x0, 0x4a52, 0xf7bd, 0x0, 0x4210, 0xf7bd, 0x0, 0x39ce, 0xf7bd, 0x0, 0x318c, 0xf7bd, 0x0, 0x294a, 0xf7bd, 0x0, 0x2108, 0xf7bd, 0x0, 0x18c6, 0xf7bd, 0x0, 0x1084, 0xf7bd, 0x0, 0x842, 0xf7bd, 0x0, 0x0, 0xf7bd, 0x842, 0xffff, 0xef7b, 0x0, 0xf7bd, 0xef7b, 0x0, 0xef7b, 0xef7b, 0x0, 0xe739, 0xef7b, 0x0, 0xdef7, 0xef7b, 0x0, 0xd6b5, 0xef7b, 0x0, 0xce73, 0xef7b, 0x0, 0xc631, 0xef7b, 0x0, 0xbdef, 0xef7b, 0x0, 0xb5ad, 0xef7b, 0x0, 0xad6b, 0xef7b, 0x0, 0xa529, 0xef7b, 0x0, 0x9ce7, 0xef7b, 0x0, 0x94a5, 0xef7b, 0x0, 0x8c63, 0xef7b, 0x0, 0x8421, 0xef7b, 0x0, 0x7bde, 0xef7b, 0x0, 0x739c, 0xef7b, 0x0, 0x6b5a, 0xef7b, 0x0, 0x6318, 0xef7b, 0x0, 0x5ad6, 0xef7b, 0x0, 0x5294, 0xef7b, 0x0, 0x4a52, 0xef7b, 0x0, 0x4210, 0xef7b, 0x0, 0x39ce, 0xef7b, 0x0, 0x318c, 0xef7b, 0x0, 0x294a, 0xef7b, 0x0, 0x2108, 0xef7b, 0x0, 0x18c6, 0xef7b, 0x0, 0x1084, 0xef7b, 0x0, 0x842, 0xef7b, 0x842, 0x0, 0xef7b, 0x1084, 0xffff, 0xe739, 0x0, 0xf7bd, 0xe739, 0x0, 0xef7b, 0xe739, 0x0, 0xe739, 0xe739, 0x0, 0xdef7, 0xe739, 0x0, 0xd6b5, 0xe739, 0x0, 0xce73, 0xe739, 0x0, 0xc631, 0xe739, 0x0, 0xbdef, 0xe739, 0x0, 0xb5ad, 0xe739, 0x0, 0xad6b, 0xe739, 0x0, 0xa529, 0xe739, 0x0, 0x9ce7, 0xe739, 0x0, 0x94a5, 0xe739, 0x0, 0x8c63, 0xe739, 0x0, 0x8421, 0xe739, 0x0, 0x7bde, 0xe739, 0x0, 0x739c, 0xe739, 0x0, 0x6b5a, 0xe739, 0x0, 0x6318, 0xe739, 0x0, 0x5ad6, 0xe739, 0x0, 0x5294, 0xe739, 0x0, 0x4a52, 0xe739, 0x0, 0x4210, 0xe739, 0x0, 0x39ce, 0xe739, 0x0, 0x318c, 0xe739, 0x0, 0x294a, 0xe739, 0x0, 0x2108, 0xe739, 0x0, 0x18c6, 0xe739, 0x0, 0x1084, 0xe739, 0x842, 0x842, 0xe739, 0x1084, 0x0, 0xe739, 0x18c6, 0xffff, 0xdef7, 0x0, 0xf7bd, 0xdef7, 0x0, 0xef7b, 0xdef7, 0x0, 0xe739, 0xdef7, 0x0, 0xdef7, 0xdef7, 0x0, 0xd6b5, 0xdef7, 0x0, 0xce73, 0xdef7, 0x0, 0xc631, 0xdef7, 0x0, 0xbdef, 0xdef7, 0x0, 0xb5ad, 0xdef7, 0x0, 0xad6b, 0xdef7, 0x0, 0xa529, 0xdef7, 0x0, 0x9ce7, 0xdef7, 0x0, 0x94a5, 0xdef7, 0x0, 0x8c63, 0xdef7, 0x0, 0x8421, 0xdef7, 0x0, 0x7bde, 0xdef7, 0x0, 0x739c, 0xdef7, 0x0, 0x6b5a, 0xdef7, 0x0, 0x6318, 0xdef7, 0x0, 0x5ad6, 0xdef7, 0x0, 0x5294, 0xdef7, 0x0, 0x4a52, 0xdef7, 0x0, 0x4210, 0xdef7, 0x0, 0x39ce, 0xdef7, 0x0, 0x318c, 0xdef7, 0x0, 0x294a, 0xdef7, 0x0, 0x2108, 0xdef7, 0x0, 0x18c6, 0xdef7, 0x842, 0x1084, 0xdef7, 0x1084, 0x842, 0xdef7, 0x18c6, 0x0, 0xdef7, 0x2108, 0xffff, 0xd6b5, 0x0, 0xf7bd, 0xd6b5, 0x0, 0xef7b, 0xd6b5, 0x0, 0xe739, 0xd6b5, 0x0, 0xdef7, 0xd6b5, 0x0, 0xd6b5, 0xd6b5, 0x0, 0xce73, 0xd6b5, 0x0, 0xc631, 0xd6b5, 0x0, 0xbdef, 0xd6b5, 0x0, 0xb5ad, 0xd6b5, 0x0, 0xad6b, 0xd6b5, 0x0, 0xa529, 0xd6b5, 0x0, 0x9ce7, 0xd6b5, 0x0, 0x94a5, 0xd6b5, 0x0, 0x8c63, 0xd6b5, 0x0, 0x8421, 0xd6b5, 0x0, 0x7bde, 0xd6b5, 0x0, 0x739c, 0xd6b5, 0x0, 0x6b5a, 0xd6b5, 0x0, 0x6318, 0xd6b5, 0x0, 0x5ad6, 0xd6b5, 0x0, 0x5294, 0xd6b5, 0x0, 0x4a52, 0xd6b5, 0x0, 0x4210, 0xd6b5, 0x0, 0x39ce, 0xd6b5, 0x0, 0x318c, 0xd6b5, 0x0, 0x294a, 0xd6b5, 0x0, 0x2108, 0xd6b5, 0x842, 0x18c6, 0xd6b5, 0x1084, 0x1084, 0xd6b5, 0x18c6, 0x842, 0xd6b5, 0x2108, 0x0, 0xd6b5, 0x294a, 0xffff, 0xce73, 0x0, 0xf7bd, 0xce73, 0x0, 0xef7b, 0xce73, 0x0, 0xe739, 0xce73, 0x0, 0xdef7, 0xce73, 0x0, 0xd6b5, 0xce73, 0x0, 0xce73, 0xce73, 0x0, 0xc631, 0xce73, 0x0, 0xbdef, 0xce73, 0x0, 0xb5ad, 0xce73, 0x0, 0xad6b, 0xce73, 0x0, 0xa529, 0xce73, 0x0, 0x9ce7, 0xce73, 0x0, 0x94a5, 0xce73, 0x0, 0x8c63, 0xce73, 0x0, 0x8421, 0xce73, 0x0, 0x7bde, 0xce73, 0x0, 0x739c, 0xce73, 0x0, 0x6b5a, 0xce73, 0x0, 0x6318, 0xce73, 0x0, 0x5ad6, 0xce73, 0x0, 0x5294, 0xce73, 0x0, 0x4a52, 0xce73, 0x0, 0x4210, 0xce73, 0x0, 0x39ce, 0xce73, 0x0, 0x318c, 0xce73, 0x0, 0x294a, 0xce73, 0x842, 0x2108, 0xce73, 0x1084, 0x18c6, 0xce73, 0x18c6, 0x1084, 0xce73, 0x2108, 0x842, 0xce73, 0x294a, 0x0, 0xce73, 0x318c, 0xffff, 0xc631, 0x0, 0xf7bd, 0xc631, 0x0, 0xef7b, 0xc631, 0x0, 0xe739, 0xc631, 0x0, 0xdef7, 0xc631, 0x0, 0xd6b5, 0xc631, 0x0, 0xce73, 0xc631, 0x0, 0xc631, 0xc631, 0x0, 0xbdef, 0xc631, 0x0, 0xb5ad, 0xc631, 0x0, 0xad6b, 0xc631, 0x0, 0xa529, 0xc631, 0x0, 0x9ce7, 0xc631, 0x0, 0x94a5, 0xc631, 0x0, 0x8c63, 0xc631, 0x0, 0x8421, 0xc631, 0x0, 0x7bde, 0xc631, 0x0, 0x739c, 0xc631, 0x0, 0x6b5a, 0xc631, 0x0, 0x6318, 0xc631, 0x0, 0x5ad6, 0xc631, 0x0, 0x5294, 0xc631, 0x0, 0x4a52, 0xc631, 0x0, 0x4210, 0xc631, 0x0, 0x39ce, 0xc631, 0x0, 0x318c, 0xc631, 0x842, 0x294a, 0xc631, 0x1084, 0x2108, 0xc631, 0x18c6, 0x18c6, 0xc631, 0x2108, 0x1084, 0xc631, 0x294a, 0x842, 0xc631, 0x318c, 0x0, 0xc631, 0x39ce, 0xffff, 0xbdef, 0x0, 0xf7bd, 0xbdef, 0x0, 0xef7b, 0xbdef, 0x0, 0xe739, 0xbdef, 0x0, 0xdef7, 0xbdef, 0x0, 0xd6b5, 0xbdef, 0x0, 0xce73, 0xbdef, 0x0, 0xc631, 0xbdef, 0x0, 0xbdef, 0xbdef, 0x0, 0xb5ad, 0xbdef, 0x0, 0xad6b, 0xbdef, 0x0, 0xa529, 0xbdef, 0x0, 0x9ce7, 0xbdef, 0x0, 0x94a5, 0xbdef, 0x0, 0x8c63, 0xbdef, 0x0, 0x8421, 0xbdef, 0x0, 0x7bde, 0xbdef, 0x0, 0x739c, 0xbdef, 0x0, 0x6b5a, 0xbdef, 0x0, 0x6318, 0xbdef, 0x0, 0x5ad6, 0xbdef, 0x0, 0x5294, 0xbdef, 0x0, 0x4a52, 0xbdef, 0x0, 0x4210, 0xbdef, 0x0, 0x39ce, 0xbdef, 0x842, 0x318c, 0xbdef, 0x1084, 0x294a, 0xbdef, 0x18c6, 0x2108, 0xbdef, 0x2108, 0x18c6, 0xbdef, 0x294a, 0x1084, 0xbdef, 0x318c, 0x842, 0xbdef, 0x39ce, 0x0, 0xbdef, 0x4210, 0xffff, 0xb5ad, 0x0, 0xf7bd, 0xb5ad, 0x0, 0xef7b, 0xb5ad, 0x0, 0xe739, 0xb5ad, 0x0, 0xdef7, 0xb5ad, 0x0, 0xd6b5, 0xb5ad, 0x0, 0xce73, 0xb5ad, 0x0, 0xc631, 0xb5ad, 0x0, 0xbdef, 0xb5ad, 0x0, 0xb5ad, 0xb5ad, 0x0, 0xad6b, 0xb5ad, 0x0, 0xa529, 0xb5ad, 0x0, 0x9ce7, 0xb5ad, 0x0, 0x94a5, 0xb5ad, 0x0, 0x8c63, 0xb5ad, 0x0, 0x8421, 0xb5ad, 0x0, 0x7bde, 0xb5ad, 0x0, 0x739c, 0xb5ad, 0x0, 0x6b5a, 0xb5ad, 0x0, 0x6318, 0xb5ad, 0x0, 0x5ad6, 0xb5ad, 0x0, 0x5294, 0xb5ad, 0x0, 0x4a52, 0xb5ad, 0x0, 0x4210, 0xb5ad, 0x842, 0x39ce, 0xb5ad, 0x1084, 0x318c, 0xb5ad, 0x18c6, 0x294a, 0xb5ad, 0x2108, 0x2108, 0xb5ad, 0x294a, 0x18c6, 0xb5ad, 0x318c, 0x1084, 0xb5ad, 0x39ce, 0x842, 0xb5ad, 0x4210, 0x0, 0xb5ad, 0x4a52, 0xffff, 0xad6b, 0x0, 0xf7bd, 0xad6b, 0x0, 0xef7b, 0xad6b, 0x0, 0xe739, 0xad6b, 0x0, 0xdef7, 0xad6b, 0x0, 0xd6b5, 0xad6b, 0x0, 0xce73, 0xad6b, 0x0, 0xc631, 0xad6b, 0x0, 0xbdef, 0xad6b, 0x0, 0xb5ad, 0xad6b, 0x0, 0xad6b, 0xad6b, 0x0, 0xa529, 0xad6b, 0x0, 0x9ce7, 0xad6b, 0x0, 0x94a5, 0xad6b, 0x0, 0x8c63, 0xad6b, 0x0, 0x8421, 0xad6b, 0x0, 0x7bde, 0xad6b, 0x0, 0x739c, 0xad6b, 0x0, 0x6b5a, 0xad6b, 0x0, 0x6318, 0xad6b, 0x0, 0x5ad6, 0xad6b, 0x0, 0x5294, 0xad6b, 0x0, 0x4a52, 0xad6b, 0x842, 0x4210, 0xad6b, 0x1084, 0x39ce, 0xad6b, 0x18c6, 0x318c, 0xad6b, 0x2108, 0x294a, 0xad6b, 0x294a, 0x2108, 0xad6b, 0x318c, 0x18c6, 0xad6b, 0x39ce, 0x1084, 0xad6b, 0x4210, 0x842, 0xad6b, 0x4a52, 0x0, 0xad6b, 0x5294, 0xffff, 0xa529, 0x0, 0xf7bd, 0xa529, 0x0, 0xef7b, 0xa529, 0x0, 0xe739, 0xa529, 0x0, 0xdef7, 0xa529, 0x0, 0xd6b5, 0xa529, 0x0, 0xce73, 0xa529, 0x0, 0xc631, 0xa529, 0x0, 0xbdef, 0xa529, 0x0, 0xb5ad, 0xa529, 0x0, 0xad6b, 0xa529, 0x0, 0xa529, 0xa529, 0x0, 0x9ce7, 0xa529, 0x0, 0x94a5, 0xa529, 0x0, 0x8c63, 0xa529, 0x0, 0x8421, 0xa529, 0x0, 0x7bde, 0xa529, 0x0, 0x739c, 0xa529, 0x0, 0x6b5a, 0xa529, 0x0, 0x6318, 0xa529, 0x0, 0x5ad6, 0xa529, 0x0, 0x5294, 0xa529, 0x842, 0x4a52, 0xa529, 0x1084, 0x4210, 0xa529, 0x18c6, 0x39ce, 0xa529, 0x2108, 0x318c, 0xa529, 0x294a, 0x294a, 0xa529, 0x318c, 0x2108, 0xa529, 0x39ce, 0x18c6, 0xa529, 0x4210, 0x1084, 0xa529, 0x4a52, 0x842, 0xa529, 0x5294, 0x0, 0xa529, 0x5ad6, 0xffff, 0x9ce7, 0x0, 0xf7bd, 0x9ce7, 0x0, 0xef7b, 0x9ce7, 0x0, 0xe739, 0x9ce7, 0x0, 0xdef7, 0x9ce7, 0x0, 0xd6b5, 0x9ce7, 0x0, 0xce73, 0x9ce7, 0x0, 0xc631, 0x9ce7, 0x0, 0xbdef, 0x9ce7, 0x0, 0xb5ad, 0x9ce7, 0x0, 0xad6b, 0x9ce7, 0x0, 0xa529, 0x9ce7, 0x0, 0x9ce7, 0x9ce7, 0x0, 0x94a5, 0x9ce7, 0x0, 0x8c63, 0x9ce7, 0x0, 0x8421, 0x9ce7, 0x0, 0x7bde, 0x9ce7, 0x0, 0x739c, 0x9ce7, 0x0, 0x6b5a, 0x9ce7, 0x0, 0x6318, 0x9ce7, 0x0, 0x5ad6, 0x9ce7, 0x842, 0x5294, 0x9ce7, 0x1084, 0x4a52, 0x9ce7, 0x18c6, 0x4210, 0x9ce7, 0x2108, 0x39ce, 0x9ce7, 0x294a, 0x318c, 0x9ce7, 0x318c, 0x294a, 0x9ce7, 0x39ce, 0x2108, 0x9ce7, 0x4210, 0x18c6, 0x9ce7, 0x4a52, 0x1084, 0x9ce7, 0x5294, 0x842, 0x9ce7, 0x5ad6, 0x0, 0x9ce7, 0x6318, 0xffff, 0x94a5, 0x0, 0xf7bd, 0x94a5, 0x0, 0xef7b, 0x94a5, 0x0, 0xe739, 0x94a5, 0x0, 0xdef7, 0x94a5, 0x0, 0xd6b5, 0x94a5, 0x0, 0xce73, 0x94a5, 0x0, 0xc631, 0x94a5, 0x0, 0xbdef, 0x94a5, 0x0, 0xb5ad, 0x94a5, 0x0, 0xad6b, 0x94a5, 0x0, 0xa529, 0x94a5, 0x0, 0x9ce7, 0x94a5, 0x0, 0x94a5, 0x94a5, 0x0, 0x8c63, 0x94a5, 0x0, 0x8421, 0x94a5, 0x0, 0x7bde, 0x94a5, 0x0, 0x739c, 0x94a5, 0x0, 0x6b5a, 0x94a5, 0x0, 0x6318, 0x94a5, 0x842, 0x5ad6, 0x94a5, 0x1084, 0x5294, 0x94a5, 0x18c6, 0x4a52, 0x94a5, 0x2108, 0x4210, 0x94a5, 0x294a, 0x39ce, 0x94a5, 0x318c, 0x318c, 0x94a5, 0x39ce, 0x294a, 0x94a5, 0x4210, 0x2108, 0x94a5, 0x4a52, 0x18c6, 0x94a5, 0x5294, 0x1084, 0x94a5, 0x5ad6, 0x842, 0x94a5, 0x6318, 0x0, 0x94a5, 0x6b5a, 0xffff, 0x8c63, 0x0, 0xf7bd, 0x8c63, 0x0, 0xef7b, 0x8c63, 0x0, 0xe739, 0x8c63, 0x0, 0xdef7, 0x8c63, 0x0, 0xd6b5, 0x8c63, 0x0, 0xce73, 0x8c63, 0x0, 0xc631, 0x8c63, 0x0, 0xbdef, 0x8c63, 0x0, 0xb5ad, 0x8c63, 0x0, 0xad6b, 0x8c63, 0x0, 0xa529, 0x8c63, 0x0, 0x9ce7, 0x8c63, 0x0, 0x94a5, 0x8c63, 0x0, 0x8c63, 0x8c63, 0x0, 0x8421, 0x8c63, 0x0, 0x7bde, 0x8c63, 0x0, 0x739c, 0x8c63, 0x0, 0x6b5a, 0x8c63, 0x842, 0x6318, 0x8c63, 0x1084, 0x5ad6, 0x8c63, 0x18c6, 0x5294, 0x8c63, 0x2108, 0x4a52, 0x8c63, 0x294a, 0x4210, 0x8c63, 0x318c, 0x39ce, 0x8c63, 0x39ce, 0x318c, 0x8c63, 0x4210, 0x294a, 0x8c63, 0x4a52, 0x2108, 0x8c63, 0x5294, 0x18c6, 0x8c63, 0x5ad6, 0x1084, 0x8c63, 0x6318, 0x842, 0x8c63, 0x6b5a, 0x0, 0x8c63, 0x739c, 0xffff, 0x8421, 0x0, 0xf7bd, 0x8421, 0x0, 0xef7b, 0x8421, 0x0, 0xe739, 0x8421, 0x0, 0xdef7, 0x8421, 0x0, 0xd6b5, 0x8421, 0x0, 0xce73, 0x8421, 0x0, 0xc631, 0x8421, 0x0, 0xbdef, 0x8421, 0x0, 0xb5ad, 0x8421, 0x0, 0xad6b, 0x8421, 0x0, 0xa529, 0x8421, 0x0, 0x9ce7, 0x8421, 0x0, 0x94a5, 0x8421, 0x0, 0x8c63, 0x8421, 0x0, 0x8421, 0x8421, 0x0, 0x7bde, 0x8421, 0x0, 0x739c, 0x8421, 0x842, 0x6b5a, 0x8421, 0x1084, 0x6318, 0x8421, 0x18c6, 0x5ad6, 0x8421, 0x2108, 0x5294, 0x8421, 0x294a, 0x4a52, 0x8421, 0x318c, 0x4210, 0x8421, 0x39ce, 0x39ce, 0x8421, 0x4210, 0x318c, 0x8421, 0x4a52, 0x294a, 0x8421, 0x5294, 0x2108, 0x8421, 0x5ad6, 0x18c6, 0x8421, 0x6318, 0x1084, 0x8421, 0x6b5a, 0x842, 0x8421, 0x739c, 0x0, 0x8421, 0x7bde, 0xffff, 0x7bde, 0x0, 0xf7bd, 0x7bde, 0x0, 0xef7b, 0x7bde, 0x0, 0xe739, 0x7bde, 0x0, 0xdef7, 0x7bde, 0x0, 0xd6b5, 0x7bde, 0x0, 0xce73, 0x7bde, 0x0, 0xc631, 0x7bde, 0x0, 0xbdef, 0x7bde, 0x0, 0xb5ad, 0x7bde, 0x0, 0xad6b, 0x7bde, 0x0, 0xa529, 0x7bde, 0x0, 0x9ce7, 0x7bde, 0x0, 0x94a5, 0x7bde, 0x0, 0x8c63, 0x7bde, 0x0, 0x8421, 0x7bde, 0x0, 0x7bde, 0x7bde, 0x842, 0x739c, 0x7bde, 0x1084, 0x6b5a, 0x7bde, 0x18c6, 0x6318, 0x7bde, 0x2108, 0x5ad6, 0x7bde, 0x294a, 0x5294, 0x7bde, 0x318c, 0x4a52, 0x7bde, 0x39ce, 0x4210, 0x7bde, 0x4210, 0x39ce, 0x7bde, 0x4a52, 0x318c, 0x7bde, 0x5294, 0x294a, 0x7bde, 0x5ad6, 0x2108, 0x7bde, 0x6318, 0x18c6, 0x7bde, 0x6b5a, 0x1084, 0x7bde, 0x739c, 0x842, 0x7bde, 0x7bde, 0x0, 0x7bde, 0x8421, 0xffff, 0x739c, 0x0, 0xf7bd, 0x739c, 0x0, 0xef7b, 0x739c, 0x0, 0xe739, 0x739c, 0x0, 0xdef7, 0x739c, 0x0, 0xd6b5, 0x739c, 0x0, 0xce73, 0x739c, 0x0, 0xc631, 0x739c, 0x0, 0xbdef, 0x739c, 0x0, 0xb5ad, 0x739c, 0x0, 0xad6b, 0x739c, 0x0, 0xa529, 0x739c, 0x0, 0x9ce7, 0x739c, 0x0, 0x94a5, 0x739c, 0x0, 0x8c63, 0x739c, 0x0, 0x8421, 0x739c, 0x842, 0x7bde, 0x739c, 0x1084, 0x739c, 0x739c, 0x18c6, 0x6b5a, 0x739c, 0x2108, 0x6318, 0x739c, 0x294a, 0x5ad6, 0x739c, 0x318c, 0x5294, 0x739c, 0x39ce, 0x4a52, 0x739c, 0x4210, 0x4210, 0x739c, 0x4a52, 0x39ce, 0x739c, 0x5294, 0x318c, 0x739c, 0x5ad6, 0x294a, 0x739c, 0x6318, 0x2108, 0x739c, 0x6b5a, 0x18c6, 0x739c, 0x739c, 0x1084, 0x739c, 0x7bde, 0x842, 0x739c, 0x8421, 0x0, 0x739c, 0x8c63, 0xffff, 0x6b5a, 0x0, 0xf7bd, 0x6b5a, 0x0, 0xef7b, 0x6b5a, 0x0, 0xe739, 0x6b5a, 0x0, 0xdef7, 0x6b5a, 0x0, 0xd6b5, 0x6b5a, 0x0, 0xce73, 0x6b5a, 0x0, 0xc631, 0x6b5a, 0x0, 0xbdef, 0x6b5a, 0x0, 0xb5ad, 0x6b5a, 0x0, 0xad6b, 0x6b5a, 0x0, 0xa529, 0x6b5a, 0x0, 0x9ce7, 0x6b5a, 0x0, 0x94a5, 0x6b5a, 0x0, 0x8c63, 0x6b5a, 0x842, 0x8421, 0x6b5a, 0x1084, 0x7bde, 0x6b5a, 0x18c6, 0x739c, 0x6b5a, 0x2108, 0x6b5a, 0x6b5a, 0x294a, 0x6318, 0x6b5a, 0x318c, 0x5ad6, 0x6b5a, 0x39ce, 0x5294, 0x6b5a, 0x4210, 0x4a52, 0x6b5a, 0x4a52, 0x4210, 0x6b5a, 0x5294, 0x39ce, 0x6b5a, 0x5ad6, 0x318c, 0x6b5a, 0x6318, 0x294a, 0x6b5a, 0x6b5a, 0x2108, 0x6b5a, 0x739c, 0x18c6, 0x6b5a, 0x7bde, 0x1084, 0x6b5a, 0x8421, 0x842, 0x6b5a, 0x8c63, 0x0, 0x6b5a, 0x94a5, 0xffff, 0x6318, 0x0, 0xf7bd, 0x6318, 0x0, 0xef7b, 0x6318, 0x0, 0xe739, 0x6318, 0x0, 0xdef7, 0x6318, 0x0, 0xd6b5, 0x6318, 0x0, 0xce73, 0x6318, 0x0, 0xc631, 0x6318, 0x0, 0xbdef, 0x6318, 0x0, 0xb5ad, 0x6318, 0x0, 0xad6b, 0x6318, 0x0, 0xa529, 0x6318, 0x0, 0x9ce7, 0x6318, 0x0, 0x94a5, 0x6318, 0x842, 0x8c63, 0x6318, 0x1084, 0x8421, 0x6318, 0x18c6, 0x7bde, 0x6318, 0x2108, 0x739c, 0x6318, 0x294a, 0x6b5a, 0x6318, 0x318c, 0x6318, 0x6318, 0x39ce, 0x5ad6, 0x6318, 0x4210, 0x5294, 0x6318, 0x4a52, 0x4a52, 0x6318, 0x5294, 0x4210, 0x6318, 0x5ad6, 0x39ce, 0x6318, 0x6318, 0x318c, 0x6318, 0x6b5a, 0x294a, 0x6318, 0x739c, 0x2108, 0x6318, 0x7bde, 0x18c6, 0x6318, 0x8421, 0x1084, 0x6318, 0x8c63, 0x842, 0x6318, 0x94a5, 0x0, 0x6318, 0x9ce7, 0xffff, 0x5ad6, 0x0, 0xf7bd, 0x5ad6, 0x0, 0xef7b, 0x5ad6, 0x0, 0xe739, 0x5ad6, 0x0, 0xdef7, 0x5ad6, 0x0, 0xd6b5, 0x5ad6, 0x0, 0xce73, 0x5ad6, 0x0, 0xc631, 0x5ad6, 0x0, 0xbdef, 0x5ad6, 0x0, 0xb5ad, 0x5ad6, 0x0, 0xad6b, 0x5ad6, 0x0, 0xa529, 0x5ad6, 0x0, 0x9ce7, 0x5ad6, 0x842, 0x94a5, 0x5ad6, 0x1084, 0x8c63, 0x5ad6, 0x18c6, 0x8421, 0x5ad6, 0x2108, 0x7bde, 0x5ad6, 0x294a, 0x739c, 0x5ad6, 0x318c, 0x6b5a, 0x5ad6, 0x39ce, 0x6318, 0x5ad6, 0x4210, 0x5ad6, 0x5ad6, 0x4a52, 0x5294, 0x5ad6, 0x5294, 0x4a52, 0x5ad6, 0x5ad6, 0x4210, 0x5ad6, 0x6318, 0x39ce, 0x5ad6, 0x6b5a, 0x318c, 0x5ad6, 0x739c, 0x294a, 0x5ad6, 0x7bde, 0x2108, 0x5ad6, 0x8421, 0x18c6, 0x5ad6, 0x8c63, 0x1084, 0x5ad6, 0x94a5, 0x842, 0x5ad6, 0x9ce7, 0x0, 0x5ad6, 0xa529, 0xffff, 0x5294, 0x0, 0xf7bd, 0x5294, 0x0, 0xef7b, 0x5294, 0x0, 0xe739, 0x5294, 0x0, 0xdef7, 0x5294, 0x0, 0xd6b5, 0x5294, 0x0, 0xce73, 0x5294, 0x0, 0xc631, 0x5294, 0x0, 0xbdef, 0x5294, 0x0, 0xb5ad, 0x5294, 0x0, 0xad6b, 0x5294, 0x0, 0xa529, 0x5294, 0x842, 0x9ce7, 0x5294, 0x1084, 0x94a5, 0x5294, 0x18c6, 0x8c63, 0x5294, 0x2108, 0x8421, 0x5294, 0x294a, 0x7bde, 0x5294, 0x318c, 0x739c, 0x5294, 0x39ce, 0x6b5a, 0x5294, 0x4210, 0x6318, 0x5294, 0x4a52, 0x5ad6, 0x5294, 0x5294, 0x5294, 0x5294, 0x5ad6, 0x4a52, 0x5294, 0x6318, 0x4210, 0x5294, 0x6b5a, 0x39ce, 0x5294, 0x739c, 0x318c, 0x5294, 0x7bde, 0x294a, 0x5294, 0x8421, 0x2108, 0x5294, 0x8c63, 0x18c6, 0x5294, 0x94a5, 0x1084, 0x5294, 0x9ce7, 0x842, 0x5294, 0xa529, 0x0, 0x5294, 0xad6b, 0xffff, 0x4a52, 0x0, 0xf7bd, 0x4a52, 0x0, 0xef7b, 0x4a52, 0x0, 0xe739, 0x4a52, 0x0, 0xdef7, 0x4a52, 0x0, 0xd6b5, 0x4a52, 0x0, 0xce73, 0x4a52, 0x0, 0xc631, 0x4a52, 0x0, 0xbdef, 0x4a52, 0x0, 0xb5ad, 0x4a52, 0x0, 0xad6b, 0x4a52, 0x842, 0xa529, 0x4a52, 0x1084, 0x9ce7, 0x4a52, 0x18c6, 0x94a5, 0x4a52, 0x2108, 0x8c63, 0x4a52, 0x294a, 0x8421, 0x4a52, 0x318c, 0x7bde, 0x4a52, 0x39ce, 0x739c, 0x4a52, 0x4210, 0x6b5a, 0x4a52, 0x4a52, 0x6318, 0x4a52, 0x5294, 0x5ad6, 0x4a52, 0x5ad6, 0x5294, 0x4a52, 0x6318, 0x4a52, 0x4a52, 0x6b5a, 0x4210, 0x4a52, 0x739c, 0x39ce, 0x4a52, 0x7bde, 0x318c, 0x4a52, 0x8421, 0x294a, 0x4a52, 0x8c63, 0x2108, 0x4a52, 0x94a5, 0x18c6, 0x4a52, 0x9ce7, 0x1084, 0x4a52, 0xa529, 0x842, 0x4a52, 0xad6b, 0x0, 0x4a52, 0xb5ad, 0xffff, 0x4210, 0x0, 0xf7bd, 0x4210, 0x0, 0xef7b, 0x4210, 0x0, 0xe739, 0x4210, 0x0, 0xdef7, 0x4210, 0x0, 0xd6b5, 0x4210, 0x0, 0xce73, 0x4210, 0x0, 0xc631, 0x4210, 0x0, 0xbdef, 0x4210, 0x0, 0xb5ad, 0x4210, 0x842, 0xad6b, 0x4210, 0x1084, 0xa529, 0x4210, 0x18c6, 0x9ce7, 0x4210, 0x2108, 0x94a5, 0x4210, 0x294a, 0x8c63, 0x4210, 0x318c, 0x8421, 0x4210, 0x39ce, 0x7bde, 0x4210, 0x4210, 0x739c, 0x4210, 0x4a52, 0x6b5a, 0x4210, 0x5294, 0x6318, 0x4210, 0x5ad6, 0x5ad6, 0x4210, 0x6318, 0x5294, 0x4210, 0x6b5a, 0x4a52, 0x4210, 0x739c, 0x4210, 0x4210, 0x7bde, 0x39ce, 0x4210, 0x8421, 0x318c, 0x4210, 0x8c63, 0x294a, 0x4210, 0x94a5, 0x2108, 0x4210, 0x9ce7, 0x18c6, 0x4210, 0xa529, 0x1084, 0x4210, 0xad6b, 0x842, 0x4210, 0xb5ad, 0x0, 0x4210, 0xbdef, 0xffff, 0x39ce, 0x0, 0xf7bd, 0x39ce, 0x0, 0xef7b, 0x39ce, 0x0, 0xe739, 0x39ce, 0x0, 0xdef7, 0x39ce, 0x0, 0xd6b5, 0x39ce, 0x0, 0xce73, 0x39ce, 0x0, 0xc631, 0x39ce, 0x0, 0xbdef, 0x39ce, 0x842, 0xb5ad, 0x39ce, 0x1084, 0xad6b, 0x39ce, 0x18c6, 0xa529, 0x39ce, 0x2108, 0x9ce7, 0x39ce, 0x294a, 0x94a5, 0x39ce, 0x318c, 0x8c63, 0x39ce, 0x39ce, 0x8421, 0x39ce, 0x4210, 0x7bde, 0x39ce, 0x4a52, 0x739c, 0x39ce, 0x5294, 0x6b5a, 0x39ce, 0x5ad6, 0x6318, 0x39ce, 0x6318, 0x5ad6, 0x39ce, 0x6b5a, 0x5294, 0x39ce, 0x739c, 0x4a52, 0x39ce, 0x7bde, 0x4210, 0x39ce, 0x8421, 0x39ce, 0x39ce, 0x8c63, 0x318c, 0x39ce, 0x94a5, 0x294a, 0x39ce, 0x9ce7, 0x2108, 0x39ce, 0xa529, 0x18c6, 0x39ce, 0xad6b, 0x1084, 0x39ce, 0xb5ad, 0x842, 0x39ce, 0xbdef, 0x0, 0x39ce, 0xc631, 0xffff, 0x318c, 0x0, 0xf7bd, 0x318c, 0x0, 0xef7b, 0x318c, 0x0, 0xe739, 0x318c, 0x0, 0xdef7, 0x318c, 0x0, 0xd6b5, 0x318c, 0x0, 0xce73, 0x318c, 0x0, 0xc631, 0x318c, 0x842, 0xbdef, 0x318c, 0x1084, 0xb5ad, 0x318c, 0x18c6, 0xad6b, 0x318c, 0x2108, 0xa529, 0x318c, 0x294a, 0x9ce7, 0x318c, 0x318c, 0x94a5, 0x318c, 0x39ce, 0x8c63, 0x318c, 0x4210, 0x8421, 0x318c, 0x4a52, 0x7bde, 0x318c, 0x5294, 0x739c, 0x318c, 0x5ad6, 0x6b5a, 0x318c, 0x6318, 0x6318, 0x318c, 0x6b5a, 0x5ad6, 0x318c, 0x739c, 0x5294, 0x318c, 0x7bde, 0x4a52, 0x318c, 0x8421, 0x4210, 0x318c, 0x8c63, 0x39ce, 0x318c, 0x94a5, 0x318c, 0x318c, 0x9ce7, 0x294a, 0x318c, 0xa529, 0x2108, 0x318c, 0xad6b, 0x18c6, 0x318c, 0xb5ad, 0x1084, 0x318c, 0xbdef, 0x842, 0x318c, 0xc631, 0x0, 0x318c, 0xce73, 0xffff, 0x294a, 0x0, 0xf7bd, 0x294a, 0x0, 0xef7b, 0x294a, 0x0, 0xe739, 0x294a, 0x0, 0xdef7, 0x294a, 0x0, 0xd6b5, 0x294a, 0x0, 0xce73, 0x294a, 0x842, 0xc631, 0x294a, 0x1084, 0xbdef, 0x294a, 0x18c6, 0xb5ad, 0x294a, 0x2108, 0xad6b, 0x294a, 0x294a, 0xa529, 0x294a, 0x318c, 0x9ce7, 0x294a, 0x39ce, 0x94a5, 0x294a, 0x4210, 0x8c63, 0x294a, 0x4a52, 0x8421, 0x294a, 0x5294, 0x7bde, 0x294a, 0x5ad6, 0x739c, 0x294a, 0x6318, 0x6b5a, 0x294a, 0x6b5a, 0x6318, 0x294a, 0x739c, 0x5ad6, 0x294a, 0x7bde, 0x5294, 0x294a, 0x8421, 0x4a52, 0x294a, 0x8c63, 0x4210, 0x294a, 0x94a5, 0x39ce, 0x294a, 0x9ce7, 0x318c, 0x294a, 0xa529, 0x294a, 0x294a, 0xad6b, 0x2108, 0x294a, 0xb5ad, 0x18c6, 0x294a, 0xbdef, 0x1084, 0x294a, 0xc631, 0x842, 0x294a, 0xce73, 0x0, 0x294a, 0xd6b5, 0xffff, 0x2108, 0x0, 0xf7bd, 0x2108, 0x0, 0xef7b, 0x2108, 0x0, 0xe739, 0x2108, 0x0, 0xdef7, 0x2108, 0x0, 0xd6b5, 0x2108, 0x842, 0xce73, 0x2108, 0x1084, 0xc631, 0x2108, 0x18c6, 0xbdef, 0x2108, 0x2108, 0xb5ad, 0x2108, 0x294a, 0xad6b, 0x2108, 0x318c, 0xa529, 0x2108, 0x39ce, 0x9ce7, 0x2108, 0x4210, 0x94a5, 0x2108, 0x4a52, 0x8c63, 0x2108, 0x5294, 0x8421, 0x2108, 0x5ad6, 0x7bde, 0x2108, 0x6318, 0x739c, 0x2108, 0x6b5a, 0x6b5a, 0x2108, 0x739c, 0x6318, 0x2108, 0x7bde, 0x5ad6, 0x2108, 0x8421, 0x5294, 0x2108, 0x8c63, 0x4a52, 0x2108, 0x94a5, 0x4210, 0x2108, 0x9ce7, 0x39ce, 0x2108, 0xa529, 0x318c, 0x2108, 0xad6b, 0x294a, 0x2108, 0xb5ad, 0x2108, 0x2108, 0xbdef, 0x18c6, 0x2108, 0xc631, 0x1084, 0x2108, 0xce73, 0x842, 0x2108, 0xd6b5, 0x0, 0x2108, 0xdef7, 0xffff, 0x18c6, 0x0, 0xf7bd, 0x18c6, 0x0, 0xef7b, 0x18c6, 0x0, 0xe739, 0x18c6, 0x0, 0xdef7, 0x18c6, 0x842, 0xd6b5, 0x18c6, 0x1084, 0xce73, 0x18c6, 0x18c6, 0xc631, 0x18c6, 0x2108, 0xbdef, 0x18c6, 0x294a, 0xb5ad, 0x18c6, 0x318c, 0xad6b, 0x18c6, 0x39ce, 0xa529, 0x18c6, 0x4210, 0x9ce7, 0x18c6, 0x4a52, 0x94a5, 0x18c6, 0x5294, 0x8c63, 0x18c6, 0x5ad6, 0x8421, 0x18c6, 0x6318, 0x7bde, 0x18c6, 0x6b5a, 0x739c, 0x18c6, 0x739c, 0x6b5a, 0x18c6, 0x7bde, 0x6318, 0x18c6, 0x8421, 0x5ad6, 0x18c6, 0x8c63, 0x5294, 0x18c6, 0x94a5, 0x4a52, 0x18c6, 0x9ce7, 0x4210, 0x18c6, 0xa529, 0x39ce, 0x18c6, 0xad6b, 0x318c, 0x18c6, 0xb5ad, 0x294a, 0x18c6, 0xbdef, 0x2108, 0x18c6, 0xc631, 0x18c6, 0x18c6, 0xce73, 0x1084, 0x18c6, 0xd6b5, 0x842, 0x18c6, 0xdef7, 0x0, 0x18c6, 0xe739, 0xffff, 0x1084, 0x0, 0xf7bd, 0x1084, 0x0, 0xef7b, 0x1084, 0x0, 0xe739, 0x1084, 0x842, 0xdef7, 0x1084, 0x1084, 0xd6b5, 0x1084, 0x18c6, 0xce73, 0x1084, 0x2108, 0xc631, 0x1084, 0x294a, 0xbdef, 0x1084, 0x318c, 0xb5ad, 0x1084, 0x39ce, 0xad6b, 0x1084, 0x4210, 0xa529, 0x1084, 0x4a52, 0x9ce7, 0x1084, 0x5294, 0x94a5, 0x1084, 0x5ad6, 0x8c63, 0x1084, 0x6318, 0x8421, 0x1084, 0x6b5a, 0x7bde, 0x1084, 0x739c, 0x739c, 0x1084, 0x7bde, 0x6b5a, 0x1084, 0x8421, 0x6318, 0x1084, 0x8c63, 0x5ad6, 0x1084, 0x94a5, 0x5294, 0x1084, 0x9ce7, 0x4a52, 0x1084, 0xa529, 0x4210, 0x1084, 0xad6b, 0x39ce, 0x1084, 0xb5ad, 0x318c, 0x1084, 0xbdef, 0x294a, 0x1084, 0xc631, 0x2108, 0x1084, 0xce73, 0x18c6, 0x1084, 0xd6b5, 0x1084, 0x1084, 0xdef7, 0x842, 0x1084, 0xe739, 0x0, 0x1084, 0xef7b, 0xffff, 0x842, 0x0, 0xf7bd, 0x842, 0x0, 0xef7b, 0x842, 0x842, 0xe739, 0x842, 0x1084, 0xdef7, 0x842, 0x18c6, 0xd6b5, 0x842, 0x2108, 0xce73, 0x842, 0x294a, 0xc631, 0x842, 0x318c, 0xbdef, 0x842, 0x39ce, 0xb5ad, 0x842, 0x4210, 0xad6b, 0x842, 0x4a52, 0xa529, 0x842, 0x5294, 0x9ce7, 0x842, 0x5ad6, 0x94a5, 0x842, 0x6318, 0x8c63, 0x842, 0x6b5a, 0x8421, 0x842, 0x739c, 0x7bde, 0x842, 0x7bde, 0x739c, 0x842, 0x8421, 0x6b5a, 0x842, 0x8c63, 0x6318, 0x842, 0x94a5, 0x5ad6, 0x842, 0x9ce7, 0x5294, 0x842, 0xa529, 0x4a52, 0x842, 0xad6b, 0x4210, 0x842, 0xb5ad, 0x39ce, 0x842, 0xbdef, 0x318c, 0x842, 0xc631, 0x294a, 0x842, 0xce73, 0x2108, 0x842, 0xd6b5, 0x18c6, 0x842, 0xdef7, 0x1084, 0x842, 0xe739, 0x842, 0x842, 0xef7b, 0x0, 0x842, 0xf7bd, 0xffff, 0x0, 0x0, 0xf7bd, 0x0, 0x842, 0xef7b, 0x0, 0x1084, 0xe739, 0x0, 0x18c6, 0xdef7, 0x0, 0x2108, 0xd6b5, 0x0, 0x294a, 0xce73, 0x0, 0x318c, 0xc631, 0x0, 0x39ce, 0xbdef, 0x0, 0x4210, 0xb5ad, 0x0, 0x4a52, 0xad6b, 0x0, 0x5294, 0xa529, 0x0, 0x5ad6, 0x9ce7, 0x0, 0x6318, 0x94a5, 0x0, 0x6b5a, 0x8c63, 0x0, 0x739c, 0x8421, 0x0, 0x7bde, 0x7bde, 0x0, 0x8421, 0x739c, 0x0, 0x8c63, 0x6b5a, 0x0, 0x94a5, 0x6318, 0x0, 0x9ce7, 0x5ad6, 0x0, 0xa529, 0x5294, 0x0, 0xad6b, 0x4a52, 0x0, 0xb5ad, 0x4210, 0x0, 0xbdef, 0x39ce, 0x0, 0xc631, 0x318c, 0x0, 0xce73, 0x294a, 0x0, 0xd6b5, 0x2108, 0x0, 0xdef7, 0x18c6, 0x0, 0xe739, 0x1084, 0x0, 0xef7b, 0x842, 0x0, 0xf7bd, 0x0, 0x0, 0xffff ) } private fun getResourceFile(path: String): File = File(javaClass.classLoader.getResource(path)!!.path) @Test fun testByteMod() { // Int.toByte() は Int値の下位8ビットをByte型で表現する。クリッピングされたりはしない // ただしKotlinもJavaと同じでbyteは符号付きしかないので面倒くさい… for (i in -256..256) { val b = i.toByte() val i2 = b.toInt() and 255 assertEquals(i and 255, i2) } } @Test fun testApng1() { FileInputStream(getResourceFile("walk.apng")).use { inStream -> ApngDecoder.parseStream( BufferedInputStream(inStream), object : ApngDecoderCallback { override fun onApngWarning(message: String) { println(message) } override fun onApngDebug(message: String) { println(message) } override fun canApngDebug(): Boolean { return true } override fun onAnimationInfo( apng: Apng, header: ApngImageHeader, animationControl: ApngAnimationControl, ) { println("animationControl=$animationControl") } override fun onHeader(apng: Apng, header: ApngImageHeader) { println("header=$header") } override fun onDefaultImage(apng: Apng, bitmap: ApngBitmap) { println("onDefaultImage w=${bitmap.width},h=${bitmap.height}") } override fun onAnimationFrame( apng: Apng, frameControl: ApngFrameControl, frameBitmap: ApngBitmap, ) { println("onAnimationFrame frameControl=$frameControl") println("onAnimationFrame w=${frameBitmap.width},h=${frameBitmap.height}") } } ) } } @Test fun test16bitPaeth() { FileInputStream(getResourceFile("basi2c16.png")).use { inStream -> ApngDecoder.parseStream( BufferedInputStream(inStream), object : ApngDecoderCallback { override fun onApngWarning(message: String) { println(message) } override fun onApngDebug(message: String) { println(message) } override fun canApngDebug(): Boolean { return true } override fun onAnimationInfo( apng: Apng, header: ApngImageHeader, animationControl: ApngAnimationControl, ) { println("animationControl=$animationControl") } override fun onHeader(apng: Apng, header: ApngImageHeader) { println("header=$header") } override fun onDefaultImage(apng: Apng, bitmap: ApngBitmap) { println("onDefaultImage w=${bitmap.width},h=${bitmap.height}") val w = bitmap.width val h = bitmap.height val dstPos = bitmap.pointer() for (y in 0 until h) { for (x in 0 until w) { val srcPos = (x + y * w) * 3 val src_r = imageData[srcPos + 0] val src_g = imageData[srcPos + 1] val src_b = imageData[srcPos + 2] dstPos.setXY(x, y) val dst_r = dstPos.red val dst_g = dstPos.green val dst_b = dstPos.blue assertEquals( src_r shr 8, dst_r, "xy=$x,$y color=${"0x%x".format(dstPos.color)} r", ) assertEquals( src_g shr 8, dst_g, "xy=$x,$y color=${"0x%x".format(dstPos.color)} g", ) assertEquals( src_b shr 8, dst_b, "xy=$x,$y color=${"0x%x".format(dstPos.color)} b", ) } } } override fun onAnimationFrame( apng: Apng, frameControl: ApngFrameControl, frameBitmap: ApngBitmap, ) { println("onAnimationFrame frameControl=$frameControl") println("onAnimationFrame w=${frameBitmap.width},h=${frameBitmap.height}") } } ) } } }