# Alterna AI chapter 02: verified standalone examples
A, x = [[2, 1], [0, 1]], [1, 2]
y = [sum(row[j] * x[j] for j in range(2)) for row in A]
assert y == [4, 2]


A, B = [[2, 1], [0, 1]], [[0, -1], [1, 0]]
C = [[sum(A[i][r] * B[r][j] for r in range(2))
      for j in range(2)] for i in range(2)]
assert C == [[1, -2], [1, 0]]


A = [[2, 1], [0, 1]]
v = [1, -1]
Av = [sum(a*b for a, b in zip(row, v)) for row in A]
assert Av == v


x = [1, -1]
hidden = 3*x[0] + 4*x[1]
update = [hidden, 2*hidden]
assert hidden == -1 and update == [-1, -2]

print('Chapter 02: 4 examples PASS')
