77except ImportError :
88 pd = None
99
10+
1011@unittest .skipIf (pd is None , "Missing package 'pandas'" )
1112class TestPandasCompat (unittest .TestCase ):
1213 def test_table_from_frame (self ):
@@ -73,6 +74,20 @@ def test_table_to_frame(self):
7374 self .assertEqual (list (df ['sepal length' ])[0 :4 ], [5.1 , 4.9 , 4.7 , 4.6 ])
7475 self .assertEqual (list (df ['iris' ])[0 :2 ], ['Iris-setosa' , 'Iris-setosa' ])
7576
77+ def test_table_to_frame_metas (self ):
78+ from Orange .data .pandas_compat import table_to_frame
79+
80+ table = Table ("zoo" )
81+ domain = table .domain
82+
83+ df = table_to_frame (table )
84+ cols = pd .Index ([var .name for var in domain .variables ])
85+ pd .testing .assert_index_equal (df .columns , cols )
86+
87+ df = table_to_frame (table , include_metas = True )
88+ cols = pd .Index ([var .name for var in domain .variables + domain .metas ])
89+ pd .testing .assert_index_equal (df .columns , cols )
90+
7691 @unittest .skip ("Convert all Orange demo dataset. It takes about 5s which is way to slow" )
7792 def test_table_to_frame_on_all_orange_dataset (self ):
7893 from os import listdir
@@ -96,3 +111,7 @@ def _get_orange_demo_datasets():
96111 self .assertEqual (type (df ), pd .DataFrame , assert_message )
97112 self .assertEqual (len (df ), len (table ), assert_message )
98113 self .assertEqual (len (df .columns ), len (table .domain ), assert_message )
114+
115+
116+ if __name__ == "__main__" :
117+ unittest .main ()
0 commit comments