def contiguous_verses(): assert passage.init( [reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 1)]) == [ passage.Data('Genesis 1:1-2', [ reference.init('Genesis', 1, 1), reference.init('Genesis', 1, 2) ], None) ]
def describe_tf_idf(): blank = None topic_1_id = 'topic_1_id' topic_2_id = 'topic_2_id' passage1 = passage.init([reference.init('Genesis', 1, 2)])[0] passage2 = passage.init([reference.init('Exodus', 5, 1)])[0] passage3 = passage.init([reference.init('John', 3, 16)])[0] sample = [ cluster_result.ClusterResult(0.5, 'sd281x', blank, blank, [passage1]), cluster_result.ClusterResult(0.25, 'ds432a', blank, blank, [passage2, passage3]) ] passage_to_topic_ids = { passage1.name: [topic_1_id], passage2.name: [topic_1_id, topic_2_id], passage3.name: [topic_2_id] } def to_tf_idf_topics(): result = cluster_result.to_tf_idf_topics(sample, passage_to_topic_ids) assert result == [[(topic_1_id, 1 * math.log(3 / 2))], [(topic_1_id, 1 * math.log(3 / 2)), (topic_2_id, 2 * math.log(3 / 2))]] def to_mean_weighted_tf_idf_topics(): result = cluster_result.to_mean_weighted_tf_idf_topics( sample, passage_to_topic_ids) mean = lambda values: sum(values) / float(len(values)) print(result) assert result == [ (topic_2_id, 0.25 * 2 * math.log(3 / 2)), (topic_1_id, mean([0.5 * 1 * math.log(3 / 2), 0.25 * 1 * math.log(3 / 2)])) ]
def duplicates(): assert passage.init([ reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 1) ]) == [ passage.Data('Genesis 1:1-2', [ reference.init('Genesis', 1, 1), reference.init('Genesis', 1, 2) ], None) ]
def mixed_verses(): assert passage.init([ reference.init('Genesis', 1, 5), reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 1) ]) == [ passage.Data('Genesis 1:1-2,5', [ reference.init('Genesis', 1, 1), reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 5) ], None) ]
def multiple_chapters(): assert passage.init([ reference.init('Genesis', 1, 5), reference.init('Genesis', 1, 2), reference.init('Genesis', 3, 12), reference.init('Genesis', 3, 10), reference.init('Genesis', 1, 1) ]) == [ passage.Data('Genesis 1:1-2,5', [ reference.init('Genesis', 1, 1), reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 5) ], None), passage.Data('Genesis 3:10,12', [ reference.init('Genesis', 3, 10), reference.init('Genesis', 3, 12) ], None), ]
def multiple_books(): assert passage.init([ reference.init('Genesis', 1, 5), reference.init('Genesis', 1, 2), reference.init('Exodus', 5, 3), reference.init('Genesis', 3, 12), reference.init('Revelation', 1, 1), reference.init('Genesis', 3, 10), reference.init('Genesis', 1, 1) ]) == [ passage.Data('Genesis 1:1-2,5', [ reference.init('Genesis', 1, 1), reference.init('Genesis', 1, 2), reference.init('Genesis', 1, 5) ], None), passage.Data('Genesis 3:10,12', [ reference.init('Genesis', 3, 10), reference.init('Genesis', 3, 12) ], None), passage.Data('Exodus 5:3', [reference.init('Exodus', 5, 3)], None), passage.Data('Revelation 1:1', [reference.init('Revelation', 1, 1)], None) ]
def by_topic(): attr = flip(getattr) by_topic = compose(lambda v: v['topic_name'], second) by_category = compose(lambda v: v['category_text'], second) by_subtopic = compose(lambda v: v['subtopic_text'], second) def _to_references(value): return dissoc( second(value), 'reference_list', 'source_topic_key', 'sort_order_category', 'subtopic_key', 'category_key', 'topic_key', 'sort_order_subtopic') return { topic: { category: { subtopic: passage.text(passage.init(list_map(first, values))) for subtopic, values in groupby(by_subtopic, chap_values).items() } for category, chap_values in groupby(by_category, topic_values).items() } for topic, topic_values in groupby(by_topic, init()).items() }
def single(): p = passage.init([reference.Data('Genesis', 1, 1)])[0] frame = nave.topics_frame(p) assert frame.label.iloc[0] == 'TIME' assert len(frame) == 7