micrograd/test/test_value.py

59 lines
1.0 KiB
Python

from micrograd.engine import Value
def test_value_init():
v = Value(1)
assert v.data == 1
def test_value_repr():
v = Value(2.0)
assert "Value(data=2.0)" == repr(v)
def test_value_add():
v1 = Value(2.0)
v2 = Value(4.0)
assert (v1 + v2).data == 6.0
assert "Value(data=6.0)" == repr(v1 + v2)
def test_value_sub():
v1 = Value(2.0)
v2 = Value(4.0)
assert (v1 - v2).data == -2.0
assert "Value(data=-2.0)" == repr(v1 - v2)
def test_value_mul():
v1 = Value(2.0)
v2 = Value(4.0)
v3 = Value(-1.0)
assert (v1 * v2).data == 8.0
assert (v1 * v3).data == -2.0
def test_value_mul_add():
v1 = Value(2.0)
v2 = Value(4.0)
v3 = Value(-1.0)
assert ((v1 * v3) + v2).data == 2.0
def test_children():
v1 = Value(2.0)
v2 = Value(4.0)
out = v1 * v2
assert len(out._prev) == 2
assert v1 in out._prev
assert v2 in out._prev
def test_operations():
v1 = Value(2.0)
v2 = Value(4.0)
mul = v1 * v2
add = v1 + v2
assert mul._op == '*'
assert add._op == '+'