#!/usr/bin/env python3

import numpy as np
import pywt

signal = [
	[1, 1],
	[1, 1],
]
signal = [
	[15, 35],
	[45, 75],
]
# signal = np.random.rand(2,2) * 1234

print("====== Signal ======")
for line in signal: print(f"{line}")

coeffs = pywt.dwt2(signal, 'haar')
LL, (LH, HL, HH) = coeffs

print(f"""
  -------------------
  |        |        |
  |  A/LL  |  H/LH  |
  |        |        |
  -------------------
  |        |        |
  |  V/HL  |  D/HH  |
  |        |        |
  -------------------""")

print("\n====== From pywt ======")
for (name, data) in [("LL", LL), ("LH", LH), ("HL", HL), ("HH", HH)]:
	for line in data:
		print(f"{name} : {line[0]:.06f}")


print("\n====== From scratch ======")
a = signal[0][0]
b = signal[0][1]
c = signal[1][0]
d = signal[1][1]

ll = ((a+b)+(c+d))/2
lh = ((a+b)-(c+d))/2
hl = ((a+c)-(b+d))/2
hh = ((a-b)-(c-d))/2

print(f"LL : {ll:.06f}")
print(f"LH : {lh:.06f}")
print(f"HL : {hl:.06f}")
print(f"HH : {hh:.06f}")

"""
print("\n====== From scratch (2) ======")
print("LL :", (a+b+c+d)/2)
print("LH :", (a+b-c-d)/2)
print("HL :", (a-b+c-d)/2)
print("HH :", (a-b-c+d)/2)
"""

