def test_gini_impurity(): assert round(gini_impurity([1, 1, 1, 1, 1, 1, 1, 1]), 3) == 0 assert round(gini_impurity([1, 1, 1, 1, 1, 1, 1, 0]), 3) == 0.219 assert round(gini_impurity([1, 1, 1, 1, 1, 1, 0, 0]), 3) == 0.375 assert round(gini_impurity([1, 1, 1, 1, 1, 0, 0, 0]), 3) == 0.469 assert round(gini_impurity([1, 1, 1, 1, 0, 0, 0, 0]), 3) == 0.500 def test_gini_gain(): assert round(gini_gain([1, 1, 1, 1, 0, 0, 0, 0], [[1, 1, 1, 1], [0, 0, 0, 0]]), 3) == 0.5 assert round(gini_gain([1, 1, 1, 1, 0, 0, 0, 0], [[1, 1, 1, 0], [0, 0, 0, 1]]), 3) == 0.125 assert round(gini_gain([1, 1, 1, 1, 0, 0, 0, 0], [[1, 0, 0, 0], [0, 1, 1, 1]]), 3) == 0.125 assert round(gini_gain([1, 1, 1, 1, 0, 0, 0, 0], [[1, 1, 0, 0], [0, 0, 1, 1]]), 3) == 0.0