var assert = require('assert')
var sec = require('../src/jsbn/sec')
var ecdsa = require('../').ecdsa

var ecparams = sec('secp256k1')

describe('EC', function() {
  it('handles point multiplication', function() {
    var G = ecparams.getG()
    var n = ecparams.getN()

    assert.ok(G.multiply(n).isInfinity(), "Gn is infinite")

    var k = ecdsa.getBigRandom(n)
    var P = G.multiply(k)
    assert.ok(!P.isInfinity(), "kG is not infinite")
    assert.ok(P.isOnCurve(), "kG on curve")
    assert.ok(P.multiply(n).isInfinity(), "kGn is infinite")

    assert.ok(P.validate(), "kG validates as a public key")
  })
})