using Test,Flux include("../src/Orbits.jl") using .Orbits #= Structure: This is broken into three parts - The test_interfaces module contains various tools used in testing - The test_routines includes functions that setup, run, and teardown tests - Everything else is a set of tests using the standard testing tools in Julia =# @testset "Overall" verbose=true begin @testset "TupleDuplicator" verbose=true begin #Check if tuple duplicator duplicates something td2 = Orbits.TupleDuplicator(2) @test typeof(td2) <: Orbits.TupleDuplicator @test td2(([1,2],[3])) == (([1,2],[3]),([1,2],[3])) st = State([1.0,2],[3]) @test td2((st.stocks,st.debris)) == (([1.0,2],[3]),([1.0,2],[3])) @test td2(state_to_tuple(st)) == (([1.0,2],[3]),([1.0,2],[3])) @test td2(st) == ((st.stocks,st.debris),(st.stocks,st.debris)) end @testset "BranchGenerator" verbose=true begin st = State([1.0,2],[3]) tp = state_to_tuple(st) bg = BranchGenerator(2) branch = Flux.Parallel(vcat, Dense(2,1),Dense(1,1)) branched = bg(branch,vcat) #type tests @test typeof(branch(tp)) <: Array{Float32} @test_broken typeof(branched[2](tp)) <: Array{Float32} #ISSUE: what am I really looking for here? #Check behaviors of the @test branched[1](st) == state_to_tuple(st) #Evaluation is of the wrong approach end #branch generator end #overall testset