From 6063d243eb4efac77751a910362a2f143db3e141 Mon Sep 17 00:00:00 2001 From: sinhrks Date: Tue, 15 Sep 2015 01:52:41 +0900 Subject: [PATCH] Mac build fix --- scripts/travis_osx_install.sh | 12 -------- scripts/travis_script.sh | 56 ++++++++++++++++++++++------------- tests/python/test_basic.py | 31 +++++++++++-------- 3 files changed, 53 insertions(+), 46 deletions(-) diff --git a/scripts/travis_osx_install.sh b/scripts/travis_osx_install.sh index adc620a52..8c449c843 100755 --- a/scripts/travis_osx_install.sh +++ b/scripts/travis_osx_install.sh @@ -5,15 +5,3 @@ if [ ${TRAVIS_OS_NAME} != "osx" ]; then fi brew update - -if [ ${TASK} == "python-package" ]; then - brew install python git graphviz - easy_install pip - pip install numpy scipy matplotlib nose -fi - -if [ ${TASK} == "python-package3" ]; then - brew install python3 git graphviz - sudo pip3 install --upgrade setuptools - pip3 install numpy scipy matplotlib nose graphviz -fi diff --git a/scripts/travis_script.sh b/scripts/travis_script.sh index c5708b0c8..f633f9d7b 100755 --- a/scripts/travis_script.sh +++ b/scripts/travis_script.sh @@ -33,30 +33,44 @@ if [ ${TASK} == "R-package" ]; then scripts/travis_R_script.sh || exit -1 fi -if [ ${TASK} == "python-package" ]; then - sudo apt-get install graphviz - sudo apt-get install python-numpy python-scipy python-matplotlib python-nose - sudo python -m pip install graphviz - make all CXX=${CXX} || exit -1 - nosetests tests/python || exit -1 -fi +if [ ${TASK} == "python-package" -o ${TASK} == "python-package3" ]; then -if [ ${TASK} == "python-package3" ]; then - sudo apt-get install graphviz - # python3-matplotlib is unavailale on Ubuntu 12.04 - sudo apt-get install python3-dev - sudo apt-get install python3-numpy python3-scipy python3-nose python3-setuptools - - make all CXX=${CXX} || exit -1 - - if [ ${TRAVIS_OS_NAME} != "osx" ]; then - sudo easy_install3 pip - sudo easy_install3 -U distribute - sudo pip install graphviz matplotlib - nosetests3 tests/python || exit -1 + if [ ${TRAVIS_OS_NAME} == "osx" ]; then + brew install graphviz + if [ ${TASK} == "python-package3" ]; then + wget -O conda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh + else + wget -O conda.sh https://repo.continuum.io/miniconda/Miniconda-latest-MacOSX-x86_64.sh + fi else - nosetests tests/python || exit -1 + sudo apt-get install graphviz + if [ ${TASK} == "python-package3" ]; then + wget -O conda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh + else + wget -O conda.sh https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh + fi fi + bash conda.sh -b -p $HOME/miniconda + export PATH="$HOME/miniconda/bin:$PATH" + hash -r + conda config --set always_yes yes --set changeps1 no + conda update -q conda + # Useful for debugging any issues with conda + conda info -a + + if [ ${TASK} == "python-package3" ]; then + conda create -n myenv python=3.4 + else + conda create -n myenv python=2.7 + fi + source activate myenv + conda install numpy scipy matplotlib nose + python -m pip install graphviz + + make all CXX=${CXX} || exit -1 + + python -m nose tests/python || exit -1 + python --version fi # only test java under linux for now diff --git a/tests/python/test_basic.py b/tests/python/test_basic.py index 70de2626c..bb6654f51 100644 --- a/tests/python/test_basic.py +++ b/tests/python/test_basic.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import numpy as np import xgboost as xgb @@ -33,21 +34,25 @@ def test_feature_names(): data = np.random.randn(100, 5) target = np.array([0, 1] * 50) - features = ['Feature1', 'Feature2', 'Feature3', 'Feature4', 'Feature5'] - dm = xgb.DMatrix(data, label=target, - feature_names=features) - assert dm.feature_names == features - assert dm.num_row() == 100 - assert dm.num_col() == 5 + cases = [['Feature1', 'Feature2', 'Feature3', 'Feature4', 'Feature5'], + [u'要因1', u'要因2', u'要因3', u'要因4', u'要因5']] - params={'objective': 'multi:softprob', - 'eval_metric': 'mlogloss', - 'eta': 0.3, - 'num_class': 3} + for features in cases: + dm = xgb.DMatrix(data, label=target, + feature_names=features) + assert dm.feature_names == features + assert dm.num_row() == 100 + assert dm.num_col() == 5 + + params={'objective': 'multi:softprob', + 'eval_metric': 'mlogloss', + 'eta': 0.3, + 'num_class': 3} + + bst = xgb.train(params, dm, num_boost_round=10) + scores = bst.get_fscore() + assert list(sorted(k for k in scores)) == features - bst = xgb.train(params, dm, num_boost_round=10) - scores = bst.get_fscore() - assert list(sorted(k for k in scores)) == features def test_plotting(): bst2 = xgb.Booster(model_file='xgb.model')