summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/01-basic.js260
1 files changed, 130 insertions, 130 deletions
diff --git a/test/01-basic.js b/test/01-basic.js
index 8edb5f4..cb5c194 100644
--- a/test/01-basic.js
+++ b/test/01-basic.js
@@ -14,18 +14,18 @@ describe('basic', function(){
describe('#validate_base()', function(){
it('validates positive bases', function(done){
assert.equal( basic.validate_base(2), true )
- done()
+ done()
})
it('validates negative bases', function(done){
assert.equal( basic.validate_base(-2), true )
- done()
+ done()
})
it('does not validate abs(base) > 36', function(done){
assert.equal( basic.validate_base(36), true )
assert.equal( basic.validate_base(37), false )
assert.equal( basic.validate_base(-36), true )
assert.equal( basic.validate_base(-37), false )
- done()
+ done()
})
it('does not validate bad bases', function(done){
assert.equal( basic.validate_base(-1), false )
@@ -34,151 +34,151 @@ describe('basic', function(){
assert.equal( basic.validate_base(NaN), false )
assert.equal( basic.validate_base(Infinity), false )
assert.equal( basic.validate_base(-Infinity), false )
- done()
+ done()
})
it('does not validate non-integer bases', function(done){
- assert.equal( basic.validate_base(1.1), false )
- done()
- })
+ assert.equal( basic.validate_base(1.1), false )
+ done()
+ })
})
describe('#validate_digits()', function(){
it('validates negative numbers', function(done){
assert.equal( basic.validate_digits("-1234567890", 10), true )
assert.equal( basic.validate_digits("-123456789a", 10), false )
- done()
+ done()
})
it('validates base 2', function(done){
assert.equal( basic.validate_digits("1010101", 2), true )
assert.equal( basic.validate_digits("1222222", 2), false )
- done()
+ done()
})
it('validates base 3', function(done){
assert.equal( basic.validate_digits("1201120", 3), true )
assert.equal( basic.validate_digits("1234567", 3), false )
- done()
+ done()
})
it('validates base -2', function(done){
assert.equal( basic.validate_digits("1010101", -2), true )
- done()
+ done()
+ })
+ it('validates bases up to 36 and -36', function(done){
+ for (var i = 2; i <= 36; i++) {
+ var s = basic.abedecary.substr(0, i).split("").reverse().join("")
+ assert.equal( basic.validate_digits(s, i), true )
+ assert.equal( basic.validate_digits(s, -i), true )
+ }
+ done()
+ })
+ })
+ describe('#validate()', function(){
+ it('validates number and base', function(done){
+ assert.equal( basic.validate_digits("1234567890", 10), true )
+ assert.equal( basic.validate_digits("1234567890", -10), true )
+ assert.equal( basic.validate_digits("123456789a", 10), false )
+ assert.equal( basic.validate_digits("123456789a", -10), false )
+ done()
+ })
+ })
+ describe('#floor()', function(){
+ it('removes the mantissa of negative numbers', function(done){
+ assert.equal( basic.floor(2.2), 2 )
+ assert.equal( basic.floor(-2.2), -2 )
+ done()
+ })
+ })
+ describe('#toNumber()', function(){
+ it('handles base 2', function(done){
+ assert.equal( basic.toNumber("00", 2), 0 )
+ assert.equal( basic.toNumber("01", 2), 1 )
+ assert.equal( basic.toNumber("10", 2), 2 )
+ assert.equal( basic.toNumber("11", 2), 3 )
+ done()
+ })
+ it('handles base -2', function(done){
+ assert.equal( basic.toNumber("00", -2), 0 )
+ assert.equal( basic.toNumber("01", -2), 1 )
+ assert.equal( basic.toNumber("10", -2), -2 )
+ assert.equal( basic.toNumber("11", -2), -1 )
+ assert.equal( basic.toNumber("101101", -2), -35 )
+ done()
+ })
+ it('handles base 10', function(done){
+ assert.equal( basic.toNumber("100", 10), 100 )
+ done()
+ })
+ it('inverts toString', function(done){
+ assert.equal( basic.toNumber(basic.toString(100, 10), 10), 100 )
+ assert.equal( basic.toNumber(basic.toString(100, 3), 3), 100 )
+ assert.equal( basic.toNumber(basic.toString(100, 2), 2), 100 )
+ assert.equal( basic.toNumber(basic.toString(100, -2), -2), 100 )
+ assert.equal( basic.toNumber(basic.toString(100, -3), -3), 100 )
+ assert.equal( basic.toNumber(basic.toString(100, -10), -10), 100 )
+ done()
+ })
+ })
+ describe('#toString()', function(){
+ it('handles base 2', function(done){
+ assert.equal( basic.toString(0, 2), "0" )
+ assert.equal( basic.toString(1, 2), "1" )
+ assert.equal( basic.toString(2, 2), "10" )
+ assert.equal( basic.toString(3, 2), "11" )
+ assert.equal( basic.toString(4, 2), "100" )
+ assert.equal( basic.toString(5, 2), "101" )
+ assert.equal( basic.toString(6, 2), "110" )
+ done()
+ })
+ it('handles base 3', function(done){
+ assert.equal( basic.toString(0, 3), "0" )
+ assert.equal( basic.toString(1, 3), "1" )
+ assert.equal( basic.toString(-1, 3), "-1" )
+ assert.equal( basic.toString(2, 3), "2" )
+ assert.equal( basic.toString(3, 3), "10" )
+ assert.equal( basic.toString(4, 3), "11" )
+ assert.equal( basic.toString(5, 3), "12" )
+ assert.equal( basic.toString(6, 3), "20" )
+ assert.equal( basic.toString(9, 3), "100" )
+ assert.equal( basic.toString(26, 3), "222" )
+ assert.equal( basic.toString(27, 3), "1000" )
+ assert.equal( basic.toString(28, 3), "1001" )
+ done()
+ })
+ it('handles base 10', function(done){
+ assert.equal( basic.toString(1, 10), "1" )
+ assert.equal( basic.toString(2, 10), "2" )
+ assert.equal( basic.toString(3, 10), "3" )
+ assert.equal( basic.toString(9, 10), "9" )
+ assert.equal( basic.toString(10, 10), "10" )
+ assert.equal( basic.toString(19, 10), "19" )
+ assert.equal( basic.toString(20, 10), "20" )
+ assert.equal( basic.toString(-20, 10), "-20" )
+ done()
+ })
+ it('handles base -2', function(done){
+ assert.equal( basic.toString(0, -2), "0" )
+ assert.equal( basic.toString(1, -2), "1" )
+ assert.equal( basic.toString(2, -2), "110" )
+ assert.equal( basic.toString(3, -2), "111" )
+ assert.equal( basic.toString(-1, -2), "11" )
+ assert.equal( basic.toString(-2, -2), "10" )
+ assert.equal( basic.toString(-3, -2), "1101" )
+ assert.equal( basic.toString(-4, -2), "1100" )
+ done()
+ })
+ it('handles base -3', function(done){
+ assert.equal( basic.toString(119, -3), "22102" )
+ done()
+ })
+ it('inverts toNumber', function(done){
+ for (var i = 2; i <= 36; i++) {
+ var s = basic.abedecary.substr(0, i)
+ .split("")
+ .reverse()
+ .join("")
+ .substr(0, 9) // cutoff here, otherwise we get rounding error
+ assert.equal( basic.toString(basic.toNumber(s, i), i), s )
+ assert.equal( basic.toString(basic.toNumber(s, -i), -i), s )
+ }
+ done()
})
- it('validates bases up to 36 and -36', function(done){
- for (var i = 2; i <= 36; i++) {
- var s = basic.abedecary.substr(0, i).split("").reverse().join("")
- assert.equal( basic.validate_digits(s, i), true )
- assert.equal( basic.validate_digits(s, -i), true )
- }
- done()
- })
})
- describe('#validate()', function(){
- it('validates number and base', function(done){
- assert.equal( basic.validate_digits("1234567890", 10), true )
- assert.equal( basic.validate_digits("1234567890", -10), true )
- assert.equal( basic.validate_digits("123456789a", 10), false )
- assert.equal( basic.validate_digits("123456789a", -10), false )
- done()
- })
- })
- describe('#floor()', function(){
- it('removes the mantissa of negative numbers', function(done){
- assert.equal( basic.floor(2.2), 2 )
- assert.equal( basic.floor(-2.2), -2 )
- done()
- })
- })
- describe('#toNumber()', function(){
- it('handles base 2', function(done){
- assert.equal( basic.toNumber("00", 2), 0 )
- assert.equal( basic.toNumber("01", 2), 1 )
- assert.equal( basic.toNumber("10", 2), 2 )
- assert.equal( basic.toNumber("11", 2), 3 )
- done()
- })
- it('handles base -2', function(done){
- assert.equal( basic.toNumber("00", -2), 0 )
- assert.equal( basic.toNumber("01", -2), 1 )
- assert.equal( basic.toNumber("10", -2), -2 )
- assert.equal( basic.toNumber("11", -2), -1 )
- assert.equal( basic.toNumber("101101", -2), -35 )
- done()
- })
- it('handles base 10', function(done){
- assert.equal( basic.toNumber("100", 10), 100 )
- done()
- })
- it('inverts toString', function(done){
- assert.equal( basic.toNumber(basic.toString(100, 10), 10), 100 )
- assert.equal( basic.toNumber(basic.toString(100, 3), 3), 100 )
- assert.equal( basic.toNumber(basic.toString(100, 2), 2), 100 )
- assert.equal( basic.toNumber(basic.toString(100, -2), -2), 100 )
- assert.equal( basic.toNumber(basic.toString(100, -3), -3), 100 )
- assert.equal( basic.toNumber(basic.toString(100, -10), -10), 100 )
- done()
- })
- })
- describe('#toString()', function(){
- it('handles base 2', function(done){
- assert.equal( basic.toString(0, 2), "0" )
- assert.equal( basic.toString(1, 2), "1" )
- assert.equal( basic.toString(2, 2), "10" )
- assert.equal( basic.toString(3, 2), "11" )
- assert.equal( basic.toString(4, 2), "100" )
- assert.equal( basic.toString(5, 2), "101" )
- assert.equal( basic.toString(6, 2), "110" )
- done()
- })
- it('handles base 3', function(done){
- assert.equal( basic.toString(0, 3), "0" )
- assert.equal( basic.toString(1, 3), "1" )
- assert.equal( basic.toString(-1, 3), "-1" )
- assert.equal( basic.toString(2, 3), "2" )
- assert.equal( basic.toString(3, 3), "10" )
- assert.equal( basic.toString(4, 3), "11" )
- assert.equal( basic.toString(5, 3), "12" )
- assert.equal( basic.toString(6, 3), "20" )
- assert.equal( basic.toString(9, 3), "100" )
- assert.equal( basic.toString(26, 3), "222" )
- assert.equal( basic.toString(27, 3), "1000" )
- assert.equal( basic.toString(28, 3), "1001" )
- done()
- })
- it('handles base 10', function(done){
- assert.equal( basic.toString(1, 10), "1" )
- assert.equal( basic.toString(2, 10), "2" )
- assert.equal( basic.toString(3, 10), "3" )
- assert.equal( basic.toString(9, 10), "9" )
- assert.equal( basic.toString(10, 10), "10" )
- assert.equal( basic.toString(19, 10), "19" )
- assert.equal( basic.toString(20, 10), "20" )
- assert.equal( basic.toString(-20, 10), "-20" )
- done()
- })
- it('handles base -2', function(done){
- assert.equal( basic.toString(0, -2), "0" )
- assert.equal( basic.toString(1, -2), "1" )
- assert.equal( basic.toString(2, -2), "110" )
- assert.equal( basic.toString(3, -2), "111" )
- assert.equal( basic.toString(-1, -2), "11" )
- assert.equal( basic.toString(-2, -2), "10" )
- assert.equal( basic.toString(-3, -2), "1101" )
- assert.equal( basic.toString(-4, -2), "1100" )
- done()
- })
- it('handles base -3', function(done){
- assert.equal( basic.toString(119, -3), "22102" )
- done()
- })
- it('inverts toNumber', function(done){
- for (var i = 2; i <= 36; i++) {
- var s = basic.abedecary.substr(0, i)
- .split("")
- .reverse()
- .join("")
- .substr(0, 9) // cutoff here, otherwise we get rounding error
- assert.equal( basic.toString(basic.toNumber(s, i), i), s )
- assert.equal( basic.toString(basic.toNumber(s, -i), -i), s )
- }
- done()
- })
- })
})