<s> import numpy as np <EOL> from neupy import algorithms , layers <EOL> from base import BaseTestCase <EOL> input_data = np . array ( [ <EOL> [ <NUM_LIT:0> , <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> ] , <EOL> ] ) <EOL> class HebbRuleTestCase ( BaseTestCase ) : <EOL> def setUp ( self ) : <EOL> super ( HebbRuleTestCase , self ) . setUp ( ) <EOL> self . default_properties = dict ( <EOL> n_inputs = <NUM_LIT:4> , <EOL> n_outputs = <NUM_LIT:1> , <EOL> n_unconditioned = <NUM_LIT:1> , <EOL> weight = np . array ( [ [ <NUM_LIT:3> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] ) . T , <EOL> ) <EOL> def test_learning_process ( self ) : <EOL> inet = algorithms . Instar ( <EOL> step = <NUM_LIT:1> , <EOL> verbose = False , <EOL> ** self . default_properties <EOL> ) <EOL> inet . train ( input_data , epochs = <NUM_LIT:10> ) <EOL> test_input = np . array ( [ [ <NUM_LIT:0> , <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> ] ] ) <EOL> self . assertEqual ( inet . predict ( test_input ) , <NUM_LIT:1> ) <EOL> np . testing . assert_array_equal ( <EOL> inet . weight , <EOL> np . array ( [ [ <NUM_LIT:3> , <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> ] ] ) . T <EOL> ) <EOL> def test_multiple_outputs ( self ) : <EOL> input_data = np . array ( [ <EOL> [ - <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> innet = algorithms . Instar ( <EOL> n_inputs = <NUM_LIT:2> , <EOL> n_outputs = <NUM_LIT:3> , <EOL> n_unconditioned = <NUM_LIT:1> , <EOL> weight = np . array ( [ <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT:1> ] , <EOL> [ - <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> ] ) , <EOL> step = <NUM_LIT:0.5> , <EOL> verbose = False <EOL> ) <EOL> innet . train ( input_data , epochs = <NUM_LIT:1> ) <EOL> np . testing . assert_array_almost_equal ( <EOL> innet . weight , <EOL> np . array ( [ <EOL> [ <NUM_LIT> , <NUM_LIT> , - <NUM_LIT:1> ] , <EOL> [ - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] <EOL> ] ) , <EOL> decimal = <NUM_LIT:4> <EOL> ) <EOL> def test_train_different_inputs ( self ) : <EOL> self . assertInvalidVectorTrain ( <EOL> algorithms . Instar ( <EOL> step = <NUM_LIT:1> , <EOL> verbose = False , <EOL> ** self . default_properties <EOL> ) , <EOL> np . array ( [ [ <NUM_LIT:0> , <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> ] ] ) , <EOL> is_feature1d = False , <EOL> ) <EOL> def test_predict_different_inputs ( self ) : <EOL> inet = algorithms . Instar ( <EOL> step = <NUM_LIT:1> , <EOL> verbose = False , <EOL> ** self . default_properties <EOL> ) <EOL> inet . train ( input_data , epochs = <NUM_LIT:10> ) <EOL> self . assertInvalidVectorPred ( inet , np . array ( [ <NUM_LIT:0> , <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> ] ) , <NUM_LIT:1> , <EOL> is_feature1d = False ) </s>
