use lib 't';

BEGIN {
    # to handle systems with no installed Test module
    # we include the t dir (where a copy of Test.pm is located)
    # as a fallback
    eval { require Test; };
    use Test;    
    plan tests => 14;
}
use XML::NestArray qw(:all);
use FileHandle;
use strict;
use Data::Dumper;

my $tree1 =
  [
   geneset=>[
             [gene=>[
                     [id=>"g1"],
                     [name=>"blah"],
                     [function=>"receptor"],
                    ]
             ],
             [gene=>[
                     [id=>"g2"],
                     [name=>"fred"],
                     [function=>"enzyme"],
                    ]
             ],
             [gene=>[
                     [id=>"g3"],
                     [name=>"zog"],
                     [function=>"binding"],
                     [function=>"dna repair"],
                    ]
             ],
             [gene=>[
                     [id=>"g4"],
                     [name=>"quah"],
                     [function=>"transport"],
                    ]
             ],
            ],
  ];
my $tree2 =
  [
   geneset=>[
             [gene=>[
                     [id=>"g1"],
                     [allele=>[
                               [allele_id=>'g1[a]'],
                               [phenotype=>'wing'],
                              ]
                     ],
                    ],
             ],
             [gene=>[
                     [id=>"g1"],
                     [allele=>[
                               [allele_id=>'g1[b]'],
                               [phenotype=>'lethal'],
                               [mutagen=>'X-ray'],
                              ]
                     ],
                    ]
             ],
             [gene=>[
                     [id=>"g2"],
                     [allele=>[
                               [allele_id=>'g2[a]'],
                               [phenotype=>'segment A6'],
                               [phenotype=>'segment A5'],
                              ]
                     ],
                    ]
             ],
             [gene=>[
                     [id=>"g3"],
                     [allele=>[
                               [allele_id=>'g3[a]'],
                               [phenotype=>'eye'],
                              ]
                     ],
                    ]
             ],
             [gene=>[
                     [id=>"g4"],
                     [allele=>[
                               [allele_id=>'g4[a]'],
                               [phenotype=>'antenna'],
                              ]
                     ],
                    ]
             ],
            ],
  ];

my @genes = findSubTree($tree2, "gene");
mergeElements($tree1, \@genes, "id");
print tree2xml($tree1);

ok(1);

collapseElement($tree2, "gene", "id");
print tree2xml($tree2);