72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.3 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 == '+'
 | 
						|
 | 
						|
 | 
						|
def test_tanh():
 | 
						|
    t = Value(2.0).tanh()
 | 
						|
    assert t.data > 0
 | 
						|
    assert t.data < 1
 | 
						|
 | 
						|
    t = Value(0.0).tanh()
 | 
						|
    assert t.data == 0
 | 
						|
 | 
						|
    t = Value(-2.0).tanh()
 | 
						|
    assert t.data < 0
 | 
						|
    assert t.data > -1
 |