SciPy

Source code for tethne.tests.test_networks_papers

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

import unittest

import networkx as nx

from tethne.readers.wos import read
from tethne.networks.papers import *

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


[docs]class TestAuthorPapers(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath)
[docs] def test_direct_citation(self): g = direct_citation(self.corpus) self.assertIsInstance(g, nx.DiGraph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) types = set([attr['type'] for n, attr in g.nodes(data=True)]) self.assertEqual(len(types), 2, "Bipartite graph") self.assertSetEqual(types, set(['paper', 'citations']), "Containing papers and their citations.")
[docs] def test_bibliographic_coupling(self): g = bibliographic_coupling(self.corpus) self.assertIsInstance(g, nx.Graph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) for s, t, attrs in g.edges(data=True): self.assertIn('weight', attrs) self.assertIn('features', attrs) for f in attrs['features']: self.assertIn(f, self.corpus.indices['citations'])
[docs] def test_cocitation(self): g = cocitation(self.corpus, min_weight=2) self.assertIsInstance(g, nx.Graph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) for s, t, attrs in g.edges(data=True): self.assertIn('weight', attrs)
[docs] def test_author_coupling(self): g = author_coupling(self.corpus) self.assertIsInstance(g, nx.Graph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) for s, t, attrs in g.edges(data=True): self.assertIn('weight', attrs) self.assertIn('features', attrs) for f in attrs['features']: self.assertIn(f, self.corpus.indices['authors'])
[docs]class TestAuthorPapersWithStreaming(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath, streaming=True)
[docs] def test_direct_citation(self): g = direct_citation(self.corpus) self.assertIsInstance(g, nx.DiGraph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) types = set([attr['type'] for n, attr in g.nodes(data=True)]) self.assertEqual(len(types), 2, "Bipartite graph") self.assertSetEqual(types, set(['paper', 'citations']), "Containing papers and their citations.")
[docs] def test_bibliographic_coupling(self): g = bibliographic_coupling(self.corpus) self.assertIsInstance(g, nx.Graph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) for s, t, attrs in g.edges(data=True): self.assertIn('weight', attrs) self.assertIn('features', attrs) for f in attrs['features']: self.assertIn(f, self.corpus.indices['citations'])
[docs] def test_cocitation(self): g = cocitation(self.corpus, min_weight=2) self.assertIsInstance(g, nx.Graph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) for s, t, attrs in g.edges(data=True): self.assertIn('weight', attrs)
[docs] def test_author_coupling(self): g = author_coupling(self.corpus) self.assertIsInstance(g, nx.Graph) self.assertGreater(g.order(), 0) self.assertGreater(g.size(), 0) for s, t, attrs in g.edges(data=True): self.assertIn('weight', attrs) self.assertIn('features', attrs) for f in attrs['features']: self.assertIn(f, self.corpus.indices['authors'])
if __name__ == '__main__': unittest.main()