def test_pprint():
    learner = HoeffdingTreeClassifier()

    expected_string = "binary_split=False, grace_period=200, leaf_prediction='nba',\n" \
                      " max_byte_size=33554432, memory_estimate_period=1000000, nb_threshold=0,\n" \
                      " no_preprune=False, nominal_attributes=None, remove_poor_atts=False,\n" \
                      " split_confidence=1e-07, split_criterion='info_gain',\n" \
                      " stop_mem_management=False, tie_threshold=0.05"
    assert _pprint(learner.get_params()) == expected_string
def test_set_params():
    learner = HoeffdingTreeClassifier()
    original_info = learner.get_info()

    params = learner.get_params()
    params.update(leaf_prediction='nb',
                  split_criterion='gini',
                  remove_poor_atts=True)

    learner.set_params(**params)

    updated_info = learner.get_info()

    assert original_info != updated_info

    expected_info = "HoeffdingTreeClassifier(binary_split=False, grace_period=200, leaf_prediction='nb', " \
                    "max_byte_size=33554432, memory_estimate_period=1000000, nb_threshold=0, no_preprune=False, " \
                    "nominal_attributes=None, remove_poor_atts=True, split_confidence=1e-07, split_criterion='gini', " \
                    "stop_mem_management=False, tie_threshold=0.05)"
    info = " ".join([line.strip() for line in learner.get_info().split()])
    assert info == expected_info