11import  pytest 
2- from  learning  import  parse_csv , weighted_mode , weighted_replicate 
2+ from  learning  import  parse_csv , weighted_mode , weighted_replicate , DataSet , \
3+                      PluralityLearner , NaiveBayesLearner , NearestNeighborLearner 
4+ from  utils  import  DataFile 
35
46
57def  test_parse_csv ():
6-     assert  parse_csv ('1, 2, 3 \n  0, 2, na' ) ==  [[1 , 2 , 3 ], [0 , 2 , 'na' ]]
8+     Iris  =  DataFile ('iris.csv' ).read ()
9+     assert  parse_csv (Iris )[0 ] ==  [5.1 ,3.5 ,1.4 ,0.2 ,'setosa' ]
710
811
912def  test_weighted_mode ():
@@ -12,3 +15,21 @@ def test_weighted_mode():
1215
1316def  test_weighted_replicate ():
1417    assert  weighted_replicate ('ABC' , [1 , 2 , 1 ], 4 ) ==  ['A' , 'B' , 'B' , 'C' ]
18+ 
19+ def  test_plurality_learner ():
20+     zoo  =  DataSet (name = "zoo" )
21+ 
22+     pL  =  PluralityLearner (zoo )
23+     assert  pL ([]) ==  "mammal" 
24+ 
25+ def  test_naive_bayes ():
26+     iris  =  DataSet (name = "iris" )
27+ 
28+     nB  =  NaiveBayesLearner (iris )
29+     assert  nB ([5 ,3 ,1 ,0.1 ]) ==  "setosa" 
30+ 
31+ def  test_k_nearest_neighbors ():
32+     iris  =  DataSet (name = "iris" )
33+ 
34+     kNN  =  NearestNeighborLearner (iris ,k = 3 )
35+     assert  kNN ([5 ,3 ,1 ,0.1 ]) ==  "setosa" 
0 commit comments