SciPy
Need help? Have a feature request? Please check out the tethne-users group .

Source code for tethne.tests.test_analyze_corpus

import sys
sys.path.append('./')

import unittest
from tethne import GraphCollection
from tethne.readers.wos import read
from tethne.analyze.corpus import feature_burstness, burstness, sigma

datapath = './tethne/tests/data/wos3.txt'


[docs]class TestFeatureBurstness(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath, index_by='wosid') self.corpus.index('date') self.feature_name = self.corpus.top_features('citations', topn=1)[0][0]
[docs] def test_feature_burstness(self): B = feature_burstness(self.corpus, 'citations', self.feature_name) self.assertIsInstance(B, tuple) self.assertEqual(len(B[0]), len(B[1])) # Should cover a period no larger than that of the corpus. dates = set(B[0]) - set(self.corpus.indices['date'].keys()) self.assertEqual(len(dates), 0) self.assertIsInstance(B[1][0], float)
[docs] def test_feature_burstness_nonorm(self): B = feature_burstness(self.corpus, 'citations', self.feature_name, normalize=False) self.assertIsInstance(B, tuple) self.assertEqual(len(B[0]), len(B[1])) # Should cover a period no larger than that of the corpus. dates = set(B[0]) - set(self.corpus.indices['date'].keys()) self.assertEqual(len(dates), 0) self.assertIsInstance(B[1][0], float)
[docs]class TestBurstness(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath, index_by='wosid') self.corpus.index('date')
[docs] def test_feature_burstness_(self): B = feature_burstness(self.corpus, 'citations', 'BOSSDORF O 2005 OECOLOGIA')
[docs] def test_burstness(self): B = burstness(self.corpus, 'citations') self.assertEqual(len(B), 20) for k, B_ in B.iteritems(): self.assertIsInstance(B_, tuple) self.assertEqual(len(B_[0]), len(B_[1])) self.assertGreater(len(B_[0]), 0)
[docs]class TestSigma(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath, index_by='wosid') self.corpus.index('date') self.G = GraphCollection(self.corpus, 'cocitation', method_kwargs={'min_weight':4})
[docs] def test_sigma(self): Sigma = sigma(self.G, self.corpus, 'citations') # Updates to the GraphCollection. for node, attrs in self.G.nodes(data=True): self.assertIn('sigma', attrs) for value in attrs['sigma'].values(): self.assertIsInstance(value, float) self.assertIn(node, Sigma)
if __name__ == '__main__': unittest.main()