Skip to content

Commit 625c165

Browse files
astarickernc
authored andcommitted
Improve basic stats coverage
1 parent 6ed3943 commit 625c165

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

Orange/tests/test_basic_stats.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Test methods with long descriptive names can omit docstrings
2+
# pylint: disable=missing-docstring
3+
from unittest import TestCase
4+
5+
from Orange.data import Table
6+
from Orange.statistics.basic_stats import DomainBasicStats, BasicStats
7+
8+
9+
class TestDomainBasicStats(TestCase):
10+
def setUp(self):
11+
self.zoo = Table("zoo")
12+
13+
def test_domain_basic_stats(self):
14+
domain = self.zoo.domain
15+
attr_stats = [BasicStats(self.zoo, a) for a in domain.attributes]
16+
class_var_stats = [BasicStats(self.zoo, a) for a in domain.class_vars]
17+
meta_stats = [BasicStats(self.zoo, a) for a in domain.metas]
18+
19+
domain_stats = DomainBasicStats(self.zoo)
20+
self.assertStatsEqual(domain_stats.stats,
21+
attr_stats + class_var_stats)
22+
23+
domain_stats = DomainBasicStats(self.zoo, include_metas=True)
24+
self.assertStatsEqual(domain_stats.stats,
25+
attr_stats + class_var_stats + meta_stats)
26+
27+
def assertStatsEqual(self, stats1, stats2):
28+
self.assertEqual(len(stats1), len(stats2))
29+
for stat1, stat2 in zip(stats1, stats2):
30+
self.assertAlmostEqual(stat1.min, stat2.min)
31+
self.assertAlmostEqual(stat1.max, stat2.max)
32+
self.assertAlmostEqual(stat1.mean, stat2.mean)
33+
self.assertAlmostEqual(stat1.var, stat2.var)
34+
self.assertAlmostEqual(stat1.nans, stat2.nans)
35+
self.assertAlmostEqual(stat1.non_nans, stat2.non_nans)

0 commit comments

Comments
 (0)