Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
duniter
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Pascal Engélibert
duniter
Commits
4faa4309
Commit
4faa4309
authored
12 years ago
by
Cédric Moreau
Browse files
Options
Downloads
Patches
Plain Diff
More Merkle tests
parent
cfa241de
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
app/lib/merkle.js
+4
-0
4 additions, 0 deletions
app/lib/merkle.js
test/merkle.js
+53
-18
53 additions, 18 deletions
test/merkle.js
with
57 additions
and
18 deletions
app/lib/merkle.js
+
4
−
0
View file @
4faa4309
...
@@ -48,6 +48,10 @@ function Merkle(strings) {
...
@@ -48,6 +48,10 @@ function Merkle(strings) {
});
});
};
};
this
.
getRoot
=
function
()
{
return
this
.
levels
[
0
][
0
];
};
// PRIVATE
// PRIVATE
function
getNodes
(
leaves
)
{
function
getNodes
(
leaves
)
{
var
remainder
=
leaves
.
length
%
2
;
var
remainder
=
leaves
.
length
%
2
;
...
...
This diff is collapsed.
Click to expand it.
test/merkle.js
+
53
−
18
View file @
4faa4309
...
@@ -2,38 +2,73 @@ var should = require('should');
...
@@ -2,38 +2,73 @@ var should = require('should');
var
assert
=
require
(
'
assert
'
);
var
assert
=
require
(
'
assert
'
);
var
fs
=
require
(
'
fs
'
);
var
fs
=
require
(
'
fs
'
);
var
mongoose
=
require
(
'
mongoose
'
);
var
mongoose
=
require
(
'
mongoose
'
);
var
async
=
require
(
'
async
'
);
var
nodecoin
=
require
(
'
../app/lib/nodecoin
'
);
var
nodecoin
=
require
(
'
../app/lib/nodecoin
'
);
var
merkle
=
require
(
'
../app/lib/merkle
'
);
var
merkle
=
require
(
'
../app/lib/merkle
'
);
var
merkleM0
,
merkleM2
,
merkleV0
,
merkleV2
;
nodecoin
.
database
.
init
();
before
(
function
(
done
)
{
var
Amendment
=
mongoose
.
model
(
'
Amendment
'
);
var
amTest
=
new
Amendment
();
var
members0
=
[];
var
m
;
var
members2
=
[];
var
voters0
=
[];
var
voters2
=
[];
// Loads amTest with its data
async
.
waterfall
([
before
(
function
(
done
)
{
function
(
callback
){
fs
.
readFile
(
__dirname
+
"
/data/amendments/BB-AM0-OK
"
,
{
encoding
:
"
utf8
"
},
function
(
err
,
data
)
{
members0
=
[
amTest
.
parse
(
data
,
function
(
err
)
{
"
2E69197FAB029D8669EF85E82457A1587CA0ED9C
"
,
done
(
err
);
"
C73882B64B7E72237A2F460CE9CAB76D19A8651E
"
,
});
"
33BBFC0C67078D72AF128B5BA296CC530126F372
"
];
members0
.
sort
();
voters0
=
members0
.
slice
();
// Merkle
merkleM0
=
merkle
(
members0
);
merkleV0
=
merkle
(
voters0
);
callback
();
},
function
(
callback
){
members2
=
members0
.
slice
();
members2
.
push
(
"
31A6302161AC8F5938969E85399EB3415C237F93
"
);
members2
.
sort
();
voters2
=
voters0
.
slice
();
voters2
.
splice
(
voters2
.
indexOf
(
'
C73882B64B7E72237A2F460CE9CAB76D19A8651E
'
));
// Merkle
merkleM2
=
merkle
(
members2
);
merkleV2
=
merkle
(
voters2
);
callback
();
}
],
function
(
err
,
result
)
{
var
merkles
=
[
merkleM0
,
merkleM2
,
merkleV0
,
merkleV2
];
async
.
forEach
(
merkles
,
function
(
merkle
,
cb
)
{
merkle
.
process
(
cb
);
},
done
);
});
});
});
});
describe
(
'
Merkle
'
,
function
(){
describe
(
'
Merkle
'
,
function
(){
describe
(
'
with BB-AM0-OK
'
,
function
(){
before
(
function
(
done
)
{
describe
(
'
of BB-AM0-OK
'
,
function
(
)
{
var
members
=
amTest
.
getNewMembers
();
m
=
merkle
(
members
);
it
(
'
voters root should be F5ACFD67FC908D28C0CFDAD886249AC260515C90
'
,
function
(){
m
.
process
(
done
);
assert
.
equal
(
merkleV0
.
getRoot
(),
"
F5ACFD67FC908D28C0CFDAD886249AC260515C90
"
);
});
});
it
(
'
vot
ers root should be
equals to
'
,
function
(){
it
(
'
memb
ers root should be
F5ACFD67FC908D28C0CFDAD886249AC260515C90
'
,
function
(){
assert
.
equal
(
m
.
levels
[
0
]
,
"
F5ACFD67FC908D28C0CFDAD886249AC260515C90
"
);
assert
.
equal
(
m
erkleM0
.
getRoot
()
,
"
F5ACFD67FC908D28C0CFDAD886249AC260515C90
"
);
});
});
});
describe
(
'
of BB-AM2-OK
'
,
function
(){
// More tests here ...
it
(
'
voters root should be DC7A9229DFDABFB9769789B7BFAE08048BCB856F
'
,
function
(){
assert
.
equal
(
merkleV2
.
getRoot
(),
"
DC7A9229DFDABFB9769789B7BFAE08048BCB856F
"
);
});
it
(
'
members root should be F92B6F81C85200250EE51783F5F9F6ACA57A9AFF
'
,
function
(){
assert
.
equal
(
merkleM2
.
getRoot
(),
"
F92B6F81C85200250EE51783F5F9F6ACA57A9AFF
"
);
});
});
});
});
});
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment