92 lines
2.5 KiB
Julia
92 lines
2.5 KiB
Julia
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
|
|
|
dir = joinpath(JULIA_HOME, Base.DOCDIR, "examples")
|
|
|
|
include(joinpath(dir, "bubblesort.jl"))
|
|
a = rand(1:100,100)
|
|
@test issorted(sort!(a;alg=BubbleSort))
|
|
|
|
include(joinpath(dir, "lru.jl"))
|
|
include(joinpath(dir, "lru_test.jl"))
|
|
|
|
include(joinpath(dir, "ModInts.jl"))
|
|
b = ModInts.ModInt{10}(2)
|
|
c = ModInts.ModInt{10}(4)
|
|
@test b + c == ModInts.ModInt{10}(6)
|
|
@test c - b == ModInts.ModInt{10}(2)
|
|
x = ModInts.ModInt{256}(13)
|
|
y = inv(x)
|
|
@test y == ModInts.ModInt{256}(197)
|
|
@test x*y == ModInts.ModInt{256}(1)
|
|
@test_throws DomainError inv(ModInts.ModInt{8}(4))
|
|
|
|
include(joinpath(dir, "ndgrid.jl"))
|
|
r = repmat(1:10,1,10)
|
|
r1, r2 = ndgrid(1:10, 1:10)
|
|
@test r1 == r
|
|
@test r2 == r'
|
|
r3, r4 = meshgrid(1:10,1:10)
|
|
@test r3 == r'
|
|
@test r4 == r
|
|
|
|
include(joinpath(dir, "queens.jl"))
|
|
@test trysolve(8, 8, 1) == (Queen(1,1),)
|
|
@test trysolve(8, 8, 7) ==
|
|
(Queen(1,1), Queen(2,3), Queen(3,5), Queen(4,2), Queen(5,8), Queen(7,4), Queen(8,7))
|
|
|
|
# Different cluster managers do not play well together. Since
|
|
# the test infrastructure already uses LocalManager, we will test the simple
|
|
# cluster manager example through a new Julia session.
|
|
if is_unix()
|
|
script = joinpath(dir, "clustermanager/simple/test_simple.jl")
|
|
cmd = `$(Base.julia_cmd()) --startup-file=no $script`
|
|
if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) && ccall(:jl_running_on_valgrind,Cint,()) == 0
|
|
error("UnixDomainCM failed test, cmd : $cmd")
|
|
end
|
|
end
|
|
|
|
dc_path = joinpath(dir, "dictchannel.jl")
|
|
# Run the remote on pid 1, since runtests may terminate workers
|
|
# at any time depending on memory usage
|
|
main_ex = quote
|
|
myid() == 1 || include($dc_path)
|
|
remotecall_fetch(1, $dc_path) do f
|
|
include(f)
|
|
nothing
|
|
end
|
|
RemoteChannel(()->DictChannel(), 1)
|
|
end
|
|
dc = eval(Main, main_ex)
|
|
@test typeof(dc) == RemoteChannel{Main.DictChannel}
|
|
|
|
@test isready(dc) == false
|
|
put!(dc, 1, 2)
|
|
put!(dc, "Hello", "World")
|
|
@test isready(dc) == true
|
|
@test isready(dc, 1) == true
|
|
@test isready(dc, "Hello") == true
|
|
@test isready(dc, 2) == false
|
|
@test fetch(dc, 1) == 2
|
|
@test fetch(dc, "Hello") == "World"
|
|
@test take!(dc, 1) == 2
|
|
@test isready(dc, 1) == false
|
|
|
|
|
|
# At least make sure code loads
|
|
include(joinpath(dir, "wordcount.jl"))
|
|
|
|
# the 0mq clustermanager depends on package ZMQ. Just making sure the
|
|
# code loads using a stub module definition for ZMQ.
|
|
zmq_found=true
|
|
try
|
|
using ZMQ
|
|
catch
|
|
zmq_found=false
|
|
end
|
|
|
|
if !zmq_found
|
|
eval(Main, parse("module ZMQ end"))
|
|
end
|
|
|
|
include(joinpath(dir, "clustermanager/0mq/ZMQCM.jl"))
|