diff --git a/tests/testFiles/fasttree/tree_1000_1199.xml b/tests/testFiles/fasttree/tree_1000_1199.xml
new file mode 100644
index 00000000..e92f94e7
--- /dev/null
+++ b/tests/testFiles/fasttree/tree_1000_1199.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ ON134852
+ 0.0
+
+
+ OM739053
+ 0.0
+
+
+ ON129429
+ 0.0
+
+
+ OU471040
+ 0.0
+
+
+ OL989074
+ 0.0
+
+
+
+
\ No newline at end of file
diff --git a/tests/testFiles/fasttree/tree_200_399.xml b/tests/testFiles/fasttree/tree_200_399.xml
new file mode 100644
index 00000000..e92f94e7
--- /dev/null
+++ b/tests/testFiles/fasttree/tree_200_399.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ ON134852
+ 0.0
+
+
+ OM739053
+ 0.0
+
+
+ ON129429
+ 0.0
+
+
+ OU471040
+ 0.0
+
+
+ OL989074
+ 0.0
+
+
+
+
\ No newline at end of file
diff --git a/tests/testFiles/fasttree/tree_400_599.xml b/tests/testFiles/fasttree/tree_400_599.xml
new file mode 100644
index 00000000..e9b26602
--- /dev/null
+++ b/tests/testFiles/fasttree/tree_400_599.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ 0.00252
+
+ ON134852
+ 0.0
+
+
+ OM739053
+ 0.0
+
+
+ OU471040
+ 0.0
+
+
+ OL989074
+ 0.0
+
+
+
+ ON129429
+ 0.00252
+
+
+
+
\ No newline at end of file
diff --git a/tests/testFiles/fasttree/tree_600_799.xml b/tests/testFiles/fasttree/tree_600_799.xml
new file mode 100644
index 00000000..441fb9cd
--- /dev/null
+++ b/tests/testFiles/fasttree/tree_600_799.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ 0.00027
+
+ ON134852
+ 0.0
+
+
+ OM739053
+ 0.0
+
+
+ ON129429
+ 0.0
+
+
+ OU471040
+ 0.0
+
+
+
+ OL989074
+ 0.00027
+
+
+
+
\ No newline at end of file
diff --git a/tests/testFiles/fasttree/tree_800_999.xml b/tests/testFiles/fasttree/tree_800_999.xml
new file mode 100644
index 00000000..7e22a155
--- /dev/null
+++ b/tests/testFiles/fasttree/tree_800_999.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ 0.00504
+
+ ON134852
+ 0.0
+
+
+ OM739053
+ 0.0
+
+
+ OL989074
+ 0.0
+
+
+
+ ON129429
+ 0.00504
+
+
+ OU471040
+ 0.00055
+
+
+
+
\ No newline at end of file
diff --git a/tests/test_genetic.py b/tests/test_genetic.py
index f401e70d..c911c64c 100644
--- a/tests/test_genetic.py
+++ b/tests/test_genetic.py
@@ -8,8 +8,10 @@
from Bio.Phylo.PhyloXML import Phylogeny
from aphylogeo import utils
+from aphylogeo.alignement import Alignment
from aphylogeo.alignement import AlignSequences
from aphylogeo.params import Params
+from aphylogeo.utils import fasttree
current_file = os.path.dirname(__file__)
@@ -211,4 +213,45 @@ def test_mafft(self):
expected = {rec.id: str(rec.seq) for rec in records}
# Assert
- assert muscle_alignment == expected
\ No newline at end of file
+ assert muscle_alignment == expected
+
+ def test_fasttree(self):
+ """
+ This test is used to test the fastTree function.
+ """
+ Params.load_from_file(params_file = "tests/clustal_align.yaml")
+
+ # load parameters
+ ref_gene_dir = Params.reference_gene_dir
+ ref_gene_file = Params.reference_gene_file
+ sequences_very_small = utils.loadSequenceFile(os.path.join(ref_gene_dir, ref_gene_file))
+
+ # Build AlignSequence object
+ sequences = sequences_very_small.copy()
+ seq_alignment = AlignSequences(sequences)
+
+ # Call clustal Alignment and msa
+ clustal_alignment = seq_alignment.clustalAlign()
+ [os.remove(file) for file in glob.glob("bin/tmp/*.fasta")]
+ windowed = self.seq_alignment.slidingWindow(clustal_alignment)
+ msa = self.seq_alignment.makeMSA(windowed)
+ alignment = Alignment(Params.alignment_method, msa)
+
+ # Generate Tree using fasttree algorithm
+ trees = fasttree(alignment.msa, Params.bootstrap_amount, True)
+
+ # To generate test files (keep commented out unless another batch of test files needs to be generated)
+ # [Phylo.write(tree, f"tests/testFiles/fasttree/tree_{window}.xml", "phyloxml") for window, tree in trees.items()]
+
+ # Assert
+ for window, tree in trees.items():
+
+ expected = Phylo.read(f"tests/testFiles/fasttree/tree_{window}.xml", "phyloxml")
+ expected_str = str(expected).split("\n")[1:]
+ expected_strip = list(map(str.strip, expected_str))
+
+ tree_str = str(tree).split("\n")[1:]
+ tree_str_strip = list(map(str.strip, tree_str))
+
+ for tree in tree_str_strip:
+ assert tree in expected_strip