forked from cytoscape/cytoscape.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollection-comparison.js
118 lines (95 loc) · 3.64 KB
/
collection-comparison.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
var expect = require('chai').expect;
var cytoscape = require('../src/test.js', cytoscape);
var $$ = cytoscape;
var is = {
elementOrCollection: function(o){
return o != null && o.instanceString && o.instanceString() === 'collection';
},
number: function(o){ return typeof o === 'number'; }
};
describe('Collection comparison', function(){
var cy;
// test setup
beforeEach(function(done){
cytoscape({
elements: {
nodes: [
{ data: { id: 'n1' } },
{ data: { id: 'n2' } },
{ data: { id: 'n3' } }
],
edges: [
{ data: { id: 'n1n2', source: 'n1', target: 'n2' } },
{ data: { id: 'n2n3', source: 'n2', target: 'n3' } }
]
},
ready: function(){
cy = this;
done();
}
});
});
it('eles.same()', function(){
expect( cy.$('#n1').same( cy.$('#n1') ) ).to.be.true;
expect( cy.$('#n1, #n2').same( cy.$('#n1, #n2') ) ).to.be.true;
expect( cy.$('#n1').same( cy.$('#n1, #n2') ) ).to.be.false;
});
it('eles.anySame()', function(){
expect( cy.$('#n1').anySame( cy.$('#n1') ) ).to.be.true;
expect( cy.$('#n1, #n2').anySame( cy.$('#n1, #n2') ) ).to.be.true;
expect( cy.$('#n1').anySame( cy.$('#n1, #n2') ) ).to.be.true;
expect( cy.$('#n3').anySame( cy.$('#n1, #n3') ) ).to.be.true;
expect( cy.$('#n1n2, #n3').anySame( cy.$('#n1, #n3') ) ).to.be.true;
});
it('eles.allAreNeighbors()', function(){
expect( cy.$('#n2').allAreNeighbors( cy.$('#n1, #n3') ) ).to.be.true;
expect( cy.$('#n1').allAreNeighbors( cy.$('#n2, #n3') ) ).to.be.false;
expect( cy.$('#n1').allAreNeighbors( cy.$('#n1n2, #n2') ) ).to.be.true;
});
it('eles.is()', function(){
expect( cy.$('#n1').is('node') ).to.be.true;
expect( cy.$('#n1n2').is('edge') ).to.be.true;
expect( cy.$('#n1n2, #n1').is('edge') ).to.be.true;
expect( cy.$('#n1n2, #n1').is('node') ).to.be.true;
});
it('eles.allAre()', function(){
expect( cy.$('#n1, #n2').allAre('node') ).to.be.true;
expect( cy.$('#n1, #n1n2').allAre('node') ).to.be.false;
});
it('eles.some()', function(){
expect( cy.edges().some(function( ele, i, eles ){
expect( is.elementOrCollection(ele) ).to.be.true;
expect( is.elementOrCollection(eles) ).to.be.true;
expect( is.number(i) ).to.be.true;
return ele.data('source') === 'n1';
}) ).to.be.true;
expect( cy.edges().some(function( ele, i, eles ){
expect( is.elementOrCollection(ele) ).to.be.true;
expect( is.elementOrCollection(eles) ).to.be.true;
expect( is.number(i) ).to.be.true;
return ele.data('source') === 'no-way-this-id-exists';
}) ).to.be.false;
});
it('eles.every()', function(){
expect( cy.edges().every(function( ele, i, eles ){
expect( is.elementOrCollection(ele) ).to.be.true;
expect( is.elementOrCollection(eles) ).to.be.true;
expect( is.number(i) ).to.be.true;
return ele.data('source') === 'n1';
}) ).to.be.false;
expect( cy.edges().every(function( ele, i, eles ){
expect( is.elementOrCollection(ele) ).to.be.true;
expect( is.elementOrCollection(eles) ).to.be.true;
expect( is.number(i) ).to.be.true;
return ele.isEdge();
}) ).to.be.true;
});
it('eles.contains()', function(){
expect( cy.$('#n1, #n2').contains('#n1') ).to.be.true;
expect( cy.$('#n1, #n2').contains( cy.$('#n1') ) ).to.be.true;
expect( cy.$('#n1, #n2').contains('#n2') ).to.be.true;
expect( cy.$('#n1, #n2').contains( cy.$('#n2') ) ).to.be.true;
expect( cy.$('#n1, #n2').contains('#n3') ).to.be.false;
expect( cy.$('#n1, #n2').contains( cy.$('#n3') ) ).to.be.false;
});
});