Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (81 sloc) 2.458 kB
require 'spec_helper'
Run.tg :read_only do
use_pacer_graphml_data :read_only
describe Pacer::Transform::PathTree do
let(:first) do
graph.v(type: 'person').payload do |p|
{ pos: 'first',
type: p[:type],
name: p[:name] }
end.lookahead { |v| v.out_e.in_v(type: 'project') }
end
let(:second) do
first.out_e.in_v(type: 'project').payload do |prj|
{ pos: 'second',
type: 'project',
name: prj[:name] }
end
end
let(:paths) { second.paths }
let(:payloads) { paths.payloads }
let(:compacted) { payloads.compact_paths }
describe 'basic paths' do
subject { paths }
its(:count) { should == 4 }
it 'should have 3 elements' do
paths.each { |x| x.length.should == 3 }
end
end
describe 'tree of paths' do
subject { paths.tree }
its(:count) { should == first.count }
its(:first) { should be_a Array }
it 'should be a tree' do
(pangloss, wrote, pacer), (a2, e2, b2), (_, e3, b3), (_, e4, b4) = paths.to_a
subject.to_a.should == [
[pangloss, [wrote, [pacer]]],
[a2, [e2, [b2]],
[e3, [b3]],
[e4, [b4]]]
]
end
end
describe 'tree of payloads' do
subject { payloads.tree }
its(:count) { should == first.count }
its(:first) { should be_a Array }
it 'should be a tree' do
(pangloss, wrote, pacer), (a2, _, b2), (_, _, b3), (_, _, b4) = payloads.to_a
subject.to_a.should == [
[pangloss, [wrote, [pacer]]],
[a2, [nil, [b2],
[b3],
[b4]]]
]
end
end
describe 'tree of compacted payloads' do
subject { compacted.tree }
its(:count) { should == first.count }
its(:first) { should be_a Array }
it 'should be a tree' do
(pangloss, pacer), (a2, b2), (_, b3), (_, b4) = compacted.to_a
subject.to_a.should == [
[pangloss, [pacer]],
[a2, [b2],
[b3],
[b4]]
]
end
end
describe 'tree of compacted payloads by type' do
subject { compacted.tree { |a, b| a[:type] == b[:type] } }
it 'should be a tree, taking the first match' do
pangloss, pacer = compacted.first
subject.to_a.should == [
[pangloss, [pacer]]
]
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.