From 929526e89e8569ddaf4c87eaca627fa027706687 Mon Sep 17 00:00:00 2001
From: David Hendriks <davidhendriks93@gmail.com>
Date: Wed, 11 Dec 2019 23:44:11 +0000
Subject: [PATCH] created tet directory with start of test functions. also
 fixed small bugs and finished the help function

---
 binarycpython/utils/functions.py |  3 +-
 tests/python_API_test.py         | 99 +++++++++++++++++++++++++++++---
 2 files changed, 92 insertions(+), 10 deletions(-)

diff --git a/binarycpython/utils/functions.py b/binarycpython/utils/functions.py
index 699e8a9cd..6d89b63ff 100644
--- a/binarycpython/utils/functions.py
+++ b/binarycpython/utils/functions.py
@@ -198,11 +198,10 @@ def run_system_with_log(**kwargs):
 
     # Run it and get output
     buffer = ""
-    output = binary_c_python_api.run_binary_with_log(arg_string)
+    output = binary_c_python_api.run_binary_with_logfile(arg_string)
 
     return output
 
-
 def parse_output(output, selected_header):
     """
     Function that parses output of binary_c:
diff --git a/tests/python_API_test.py b/tests/python_API_test.py
index bb92a2fde..18c9ad8a0 100755
--- a/tests/python_API_test.py
+++ b/tests/python_API_test.py
@@ -2,12 +2,19 @@
 
 import binary_c_python_api
 
+from binarycpython.utils.custom_logging_functions import (
+    autogen_C_logging_code,
+    binary_c_log_code,
+    create_and_load_logging_function,
+)
+
+import tempfile
+
 ############################################################
-# Test script to run a binary using the binary_c Python
-# module.
+# Test script for the api functions
 ############################################################
 
-def run_test_binary():
+def test_run_binary():
     m1 = 15.0  # Msun
     m2 = 14.0  # Msun
     separation = 0  # 0 = ignored, use period
@@ -15,7 +22,6 @@ def run_test_binary():
     eccentricity = 0.0
     metallicity = 0.02
     max_evolution_time = 15000
-    buffer = ""
     argstring = "binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g}  ".format(
         m1,
         m2,
@@ -28,13 +34,90 @@ def run_test_binary():
 
     output = binary_c_python_api.run_binary(argstring)
 
-    print("\n\nBinary_c output:\n\n")
+    print("\n\nBinary_c output:")
     print(output)
 
-
-def run_help():
+def test_return_help():
     out = binary_c_python_api.return_help('M_1')
     print(out)
 
-run_help()
+def test_return_arglines():
+    out = binary_c_python_api.return_arglines()
+    print(out)
+
+def test_run_binary_with_log():
+    m1 = 15.0  # Msun
+    m2 = 14.0  # Msun
+    separation = 0  # 0 = ignored, use period
+    orbital_period = 4530.0  # days
+    eccentricity = 0.0
+    metallicity = 0.02
+    max_evolution_time = 15000
+
+    log_filename = tempfile.gettempdir() + "/test_log.txt"
+    api_log_filename_prefix = tempfile.gettempdir()+'/test_log'
+
+    argstring = "binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} log_filename {7:s} api_log_filename_prefix {8:s}".format(
+        m1,
+        m2,
+        separation,
+        orbital_period,
+        eccentricity,
+        metallicity,
+        max_evolution_time,
+        log_filename,
+        api_log_filename_prefix,
+    )
+
+    output = binary_c_python_api.run_binary_with_logfile(argstring)
+    print("\n\nBinary_c output:")
+    print(output)
+
+def test_run_binary_with_custom_logging():
+    """
+    """
+
+    # generate logging lines. Here you can choose whatever you want to have logged, and with what header
+    # this generates working print statements
+    logging_line = autogen_C_logging_code(
+        {"MY_STELLAR_DATA": ["model.time", "star[0].mass"],}
+    )
+
+    # Generate entire shared lib code around logging lines
+    custom_logging_code = binary_c_log_code(logging_line)
+
+    # Load memory adress
+    func_memaddr = create_and_load_logging_function(custom_logging_code)
+
+    m1 = 15.0  # Msun
+    m2 = 14.0  # Msun
+    separation = 0  # 0 = ignored, use period
+    orbital_period = 4530.0  # days
+    eccentricity = 0.0
+    metallicity = 0.02
+    max_evolution_time = 15000
+    log_filename = tempfile.gettempdir() + "/test_log.txt"
+    argstring = "binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} log_filename {7:s}".format(
+        m1,
+        m2,
+        separation,
+        orbital_period,
+        eccentricity,
+        metallicity,
+        max_evolution_time,
+        log_filename,
+    )
+
+    out = binary_c_python_api.run_binary_custom_logging(argstring, func_memaddr)
+    print(out)
+
+####
+# test_run_binary()
+
+test_run_binary_with_log()
+
+# test_return_help()
+
+# test_return_arglines()
 
+# test_run_binary_with_custom_logging()
\ No newline at end of file
-- 
GitLab