1+ # pylint: disable=import-outside-toplevel
12import unittest
23import numpy as np
34from Orange .data import ContinuousVariable , DiscreteVariable , TimeVariable , Table
78except ImportError :
89 pd = None
910
11+
1012@unittest .skipIf (pd is None , "Missing package 'pandas'" )
1113class TestPandasCompat (unittest .TestCase ):
1214 def test_table_from_frame (self ):
@@ -73,6 +75,20 @@ def test_table_to_frame(self):
7375 self .assertEqual (list (df ['sepal length' ])[0 :4 ], [5.1 , 4.9 , 4.7 , 4.6 ])
7476 self .assertEqual (list (df ['iris' ])[0 :2 ], ['Iris-setosa' , 'Iris-setosa' ])
7577
78+ def test_table_to_frame_metas (self ):
79+ from Orange .data .pandas_compat import table_to_frame
80+
81+ table = Table ("zoo" )
82+ domain = table .domain
83+
84+ df = table_to_frame (table )
85+ cols = pd .Index ([var .name for var in domain .variables ])
86+ pd .testing .assert_index_equal (df .columns , cols )
87+
88+ df = table_to_frame (table , include_metas = True )
89+ cols = pd .Index ([var .name for var in domain .variables + domain .metas ])
90+ pd .testing .assert_index_equal (df .columns , cols )
91+
7692 @unittest .skip ("Convert all Orange demo dataset. It takes about 5s which is way to slow" )
7793 def test_table_to_frame_on_all_orange_dataset (self ):
7894 from os import listdir
@@ -96,3 +112,7 @@ def _get_orange_demo_datasets():
96112 self .assertEqual (type (df ), pd .DataFrame , assert_message )
97113 self .assertEqual (len (df ), len (table ), assert_message )
98114 self .assertEqual (len (df .columns ), len (table .domain ), assert_message )
115+
116+
117+ if __name__ == "__main__" :
118+ unittest .main ()
0 commit comments