| #!/usr/bin/env python3 |
| import numpy as np |
| from PIL import Image |
| |
| from basisu_py.codec import Encoder, EncoderBackend |
| from basisu_py.constants import BasisTexFormat |
| |
| print("========== BACKEND LOADING TEST ==========\n") |
| |
| # -------------------------------------------------------------- |
| # 1. Test native backend (if available) |
| # -------------------------------------------------------------- |
| print("Testing native backend...") |
| |
| try: |
| enc_native = Encoder(backend=EncoderBackend.NATIVE) |
| print(" [OK] Native backend loaded") |
| except Exception as e: |
| print(" [FAIL] Native backend failed to load:", e) |
| enc_native = None |
| |
| # If native loaded, test very basic functionality |
| if enc_native: |
| try: |
| version = enc_native._native.get_version() |
| print(f" Native get_version() ? {version}") |
| |
| ptr = enc_native._native.alloc(16) |
| print(f" Native alloc() returned ptr = {ptr}") |
| |
| enc_native._native.free(ptr) |
| print(f" Native free() OK") |
| |
| print(" [OK] Native basic operations working.\n") |
| except Exception as e: |
| print(" [FAIL] Native operations error:", e) |
| else: |
| print(" Skipping native basic operations.\n") |
| |
| # -------------------------------------------------------------- |
| # 2. Test WASM backend |
| # -------------------------------------------------------------- |
| print("\nTesting WASM backend...") |
| |
| try: |
| enc_wasm = Encoder(backend=EncoderBackend.WASM) |
| print(" [OK] WASM backend loaded") |
| except Exception as e: |
| print(" [FAIL] WASM backend failed to load:", e) |
| enc_wasm = None |
| |
| # If WASM loaded, test basic methods |
| if enc_wasm and enc_wasm._wasm is not None: |
| try: |
| version = enc_wasm._wasm.get_version() |
| print(f" WASM get_version() ? {version}") |
| |
| ptr = enc_wasm._wasm.alloc(16) |
| print(f" WASM alloc() returned ptr = {ptr}") |
| |
| enc_wasm._wasm.free(ptr) |
| print(f" WASM free() OK") |
| |
| print(" [OK] WASM basic operations working.\n") |
| except Exception as e: |
| print(" [FAIL] WASM operations error:", e) |
| else: |
| print(" Skipping WASM basic operations.\n") |
| |
| print("\n========== DONE ==========\n") |