public void FactorsBigIntegerNonPrime()
    {
        var expected = 32;
        var actual   = Factorization.Factors(new BigInteger(6546235646418)).Count();

        Assert.Equal(expected, actual);
    }
    public void FactorsBigInteger()
    {
        var expected = new BigInteger[] { 1, 2, 4, 103, 206, 412 };
        var actual   = Factorization.Factors(new BigInteger(412));

        Assert.True(expected.OrderBy(sequence => sequence).SequenceEqual(actual.OrderBy(sequence => sequence)));
    }
    public void FactorsBigIntegerPrime()
    {
        var expected = 2;
        var actual   = Factorization.Factors(new BigInteger(112272535095293)).Count();

        Assert.Equal(expected, actual);
    }
    public void FactorsLong()
    {
        var expected = new long[] { 1, 2, 4, 103, 206, 412 };
        var actual   = Factorization.Factors(412L);

        Assert.True(expected.OrderBy(sequence => sequence).SequenceEqual(actual.OrderBy(sequence => sequence)));
    }