using FeynmanDiagramGenerator import FeynmanDiagramGenerator.EmptyTree import FeynmanDiagramGenerator.Subtree import FeynmanDiagramGenerator.leaves import FeynmanDiagramGenerator.ForestIterator @testset "Number of leaves" begin @test leaves(EmptyTree()) == 1 @test leaves(Subtree(EmptyTree(), EmptyTree())) == 2 @test leaves(Subtree(EmptyTree(), Subtree(EmptyTree(), EmptyTree()))) == 3 end @testset "Number of Forests" begin @test_throws AssertionError Forest(0) @test_throws AssertionError ForestIterator(0) groundtruth_lengths = [1, 1, 1, 2, 3, 6, 11, 23, 46, 98, 207, 451, 983, 2179, 4850, 10905, 24631, 56011, 127912, 293547] @testset "Forest with $i leaves" for i in 1:20 @test length([t for t in Forest(i)]) == groundtruth_lengths[i] for t in Forest(i) @test leaves(t) == i end end end