Add: julia-0.6.2
Former-commit-id: ccc667cf67d569f3fb3df39aa57c2134755a7551
This commit is contained in:
70
julia-0.6.2/share/julia/test/combinatorics.jl
Normal file
70
julia-0.6.2/share/julia/test/combinatorics.jl
Normal file
@@ -0,0 +1,70 @@
|
||||
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
||||
|
||||
@testset "binomial" begin
|
||||
@test binomial(5,-1) == 0
|
||||
@test binomial(5,10) == 0
|
||||
@test binomial(5,3) == 10
|
||||
@test binomial(2,1) == 2
|
||||
@test binomial(1,2) == 0
|
||||
@test binomial(-2,1) == -2 # let's agree
|
||||
@test binomial(2,-1) == 0
|
||||
|
||||
#Issue 6154
|
||||
@test binomial(Int32(34), Int32(15)) == binomial(BigInt(34), BigInt(15)) == 1855967520
|
||||
@test binomial(Int64(67), Int64(29)) == binomial(BigInt(67), BigInt(29)) == 7886597962249166160
|
||||
@test binomial(Int128(131), Int128(62)) == binomial(BigInt(131), BigInt(62)) == 157311720980559117816198361912717812000
|
||||
@test_throws InexactError binomial(Int64(67), Int64(30))
|
||||
end
|
||||
|
||||
@testset "permutations" begin
|
||||
p = shuffle([1:1000;])
|
||||
@test isperm(p)
|
||||
@test all(invperm(invperm(p)) .== p)
|
||||
@test isperm(()) == true
|
||||
@test isperm((1,)) == true
|
||||
@test isperm((2,)) == false
|
||||
@test isperm((1,2)) == true
|
||||
@test isperm((2,1)) == true
|
||||
@test isperm((2,2)) == false
|
||||
@test isperm((1,3)) == false
|
||||
@test invperm(()) == ()
|
||||
@test invperm((1,)) == (1,)
|
||||
@test invperm((1,2)) == (1,2)
|
||||
@test invperm((2,1)) == (2,1)
|
||||
@test_throws ArgumentError invperm((1,3))
|
||||
|
||||
push!(p, 1)
|
||||
@test !isperm(p)
|
||||
|
||||
a = randcycle(10)
|
||||
@test ipermute!(permute!([1:10;], a),a) == [1:10;]
|
||||
|
||||
# PR 12785
|
||||
let a = 2:-1:1
|
||||
@test ipermute!(permute!([1, 2], a), a) == [1, 2]
|
||||
end
|
||||
end
|
||||
|
||||
@testset "factorial" begin
|
||||
@test factorial(7) == 5040
|
||||
@test factorial(Int8(7)) == 5040
|
||||
@test factorial(UInt8(7)) == 5040
|
||||
@test factorial(Int16(7)) == 5040
|
||||
@test factorial(UInt16(7)) == 5040
|
||||
@test factorial(Int32(7)) == 5040
|
||||
@test factorial(UInt32(7)) == 5040
|
||||
@test factorial(Int64(7)) == 5040
|
||||
@test factorial(UInt64(7)) == 5040
|
||||
@test factorial(Int128(7)) == 5040
|
||||
@test factorial(UInt128(7)) == 5040
|
||||
@test factorial(0) == 1
|
||||
@test_throws DomainError factorial(-1)
|
||||
@test factorial(Int64(20)) == 2432902008176640000
|
||||
# issue #6579
|
||||
@test_throws OverflowError factorial(Int64(21))
|
||||
@test typeof(factorial(Int8(2))) == typeof(factorial(Int8(1)))
|
||||
if Int === Int32
|
||||
@test factorial(Int32(12)) === Int32(479001600)
|
||||
@test_throws OverflowError factorial(Int32(13))
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user