From 23a3da9aaf3bb7e6228cd34fd5dc026c57b372bc Mon Sep 17 00:00:00 2001 From: Daniel Weschke Date: Tue, 15 Oct 2019 13:10:11 +0200 Subject: [PATCH] rename src to pylib and in data.seq float rounding uses start as well --- {src => pylib}/data.py | 13 +++++++++++-- {src => pylib}/date.py | 0 {src => pylib}/geometry.py | 0 {src => pylib}/geometry_plot.py | 0 {src => pylib}/numerical/__init__.py | 0 {src => pylib}/numerical/fit.py | 0 {src => pylib}/numerical/integration.py | 0 {src => pylib}/numerical/ode.py | 0 {src => pylib}/numerical/ode_model.py | 0 {src => pylib}/time_of_day.py | 0 tests/test_data.py | 21 +++++++++++++++++++-- tests/test_fit.py | 2 +- tests/test_geometry.py | 2 +- tests/test_ode.py | 2 +- tests/test_time_of_day.py | 2 +- 15 files changed, 34 insertions(+), 8 deletions(-) rename {src => pylib}/data.py (93%) rename {src => pylib}/date.py (100%) rename {src => pylib}/geometry.py (100%) rename {src => pylib}/geometry_plot.py (100%) rename {src => pylib}/numerical/__init__.py (100%) rename {src => pylib}/numerical/fit.py (100%) rename {src => pylib}/numerical/integration.py (100%) rename {src => pylib}/numerical/ode.py (100%) rename {src => pylib}/numerical/ode_model.py (100%) rename {src => pylib}/time_of_day.py (100%) diff --git a/src/data.py b/pylib/data.py similarity index 93% rename from src/data.py rename to pylib/data.py index 712ca45..84c508c 100644 --- a/src/data.py +++ b/pylib/data.py @@ -11,6 +11,7 @@ .. moduleauthor:: Daniel Weschke """ from __future__ import print_function +import math import pickle def read(file_name, x_column, y_column, default=None, verbose=False): @@ -143,12 +144,20 @@ def seq(start, stop=None, step=1): if stop is None: return seq(0, start, step) + start_str = str(start) + start_exp = 0 + if '.' in start_str: + start_exp = len(start_str.split('.')[1]) + step_str = str(step) - exponent = 0 + step_exp = 0 if '.' in step_str: - exponent = len(step_str.split('.')[1]) + step_exp = len(step_str.split('.')[1]) + + exponent = max(start_exp, step_exp) # no stop because it is an open bound n = int(math.ceil((stop - start)/float(step))) + #n = int((stop - start)/float(step)) # in py3 math.ceil returns int lst = [] if n > 0: lst = [round(start + step*i, exponent) for i in range(n)] diff --git a/src/date.py b/pylib/date.py similarity index 100% rename from src/date.py rename to pylib/date.py diff --git a/src/geometry.py b/pylib/geometry.py similarity index 100% rename from src/geometry.py rename to pylib/geometry.py diff --git a/src/geometry_plot.py b/pylib/geometry_plot.py similarity index 100% rename from src/geometry_plot.py rename to pylib/geometry_plot.py diff --git a/src/numerical/__init__.py b/pylib/numerical/__init__.py similarity index 100% rename from src/numerical/__init__.py rename to pylib/numerical/__init__.py diff --git a/src/numerical/fit.py b/pylib/numerical/fit.py similarity index 100% rename from src/numerical/fit.py rename to pylib/numerical/fit.py diff --git a/src/numerical/integration.py b/pylib/numerical/integration.py similarity index 100% rename from src/numerical/integration.py rename to pylib/numerical/integration.py diff --git a/src/numerical/ode.py b/pylib/numerical/ode.py similarity index 100% rename from src/numerical/ode.py rename to pylib/numerical/ode.py diff --git a/src/numerical/ode_model.py b/pylib/numerical/ode_model.py similarity index 100% rename from src/numerical/ode_model.py rename to pylib/numerical/ode_model.py diff --git a/src/time_of_day.py b/pylib/time_of_day.py similarity index 100% rename from src/time_of_day.py rename to pylib/time_of_day.py diff --git a/tests/test_data.py b/tests/test_data.py index 4faced7..428fa0e 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -12,8 +12,8 @@ import unittest import os import sys -sys.path.insert(0, os.path.abspath('../src')) -from data import read, unique_ending, get_id +sys.path.insert(0, os.path.abspath('../pylib')) +from data import read, unique_ending, get_id, seq class TestData(unittest.TestCase): @@ -51,6 +51,23 @@ class TestData(unittest.TestCase): '837c5378-9e6e-4bd0-b6a7-460d02fb62a3' ) + def test_seq(self): + """test seq function""" + self.assertEqual(seq(0), []) + self.assertEqual(seq(1), [0]) + self.assertEqual(seq(2), [0, 1]) + self.assertEqual(seq(0, 3), [0, 1, 2]) + self.assertEqual(seq(3, 3), []) + self.assertEqual(seq(3, 4), [3]) + self.assertEqual(seq(3, 5), [3, 4]) + self.assertEqual(seq(3, 5, 1), [3, 4]) + self.assertEqual(seq(3, 5, 0.5), [3, 3.5, 4, 4.5]) + self.assertEqual(seq(3, 5, 0.2), [3, 3.2, 3.4, 3.6, 3.8, 4, 4.2, 4.4, 4.6, 4.8]) + self.assertEqual(seq(4, 0, -0.4), [4, 3.6, 3.2, 2.8, 2.4, 2, 1.6, 1.2, 0.8, 0.4]) + self.assertEqual(seq(4, 0, -0.41), [4, 3.59, 3.18, 2.77, 2.36, 1.95, 1.54, 1.13, 0.72, 0.31]) + self.assertEqual(seq(3.03, 5.07), [3.03, 4.03, 5.03]) + self.assertEqual(seq(3, 5.07), [3, 4, 5]) + if __name__ == '__main__': unittest.main() diff --git a/tests/test_fit.py b/tests/test_fit.py index d92f347..ee509f9 100644 --- a/tests/test_fit.py +++ b/tests/test_fit.py @@ -13,7 +13,7 @@ import unittest import os import sys from pylab import array, argmax, subplot, plot, title, xlim, show, gradient, linspace -sys.path.insert(0, os.path.abspath('../src')) +sys.path.insert(0, os.path.abspath('../pylib')) from data import data_read from numerical.fit import gauss_fit diff --git a/tests/test_geometry.py b/tests/test_geometry.py index e6f54cb..d73c1da 100644 --- a/tests/test_geometry.py +++ b/tests/test_geometry.py @@ -14,7 +14,7 @@ import os import sys import math from numpy import allclose -sys.path.insert(0, os.path.abspath('../src')) +sys.path.insert(0, os.path.abspath('../pylib')) from data import fold_list from geometry import translate_xy, rotate_xy, interpolate_hermite, lines, cubics from geometry_plot import plot_lines, plot_cubic_lines diff --git a/tests/test_ode.py b/tests/test_ode.py index 038c0b5..7b74257 100644 --- a/tests/test_ode.py +++ b/tests/test_ode.py @@ -19,7 +19,7 @@ from matplotlib.pyplot import figure, subplots, plot, show import os import sys -sys.path.insert(0, os.path.abspath('../src')) +sys.path.insert(0, os.path.abspath('../pylib')) from numerical.ode import (e1, e2, e4, i1, newmark_newtonraphson, newmark_newtonraphson_rdk) from numerical.ode_model import disk, disk_nm, disk_nmmdk diff --git a/tests/test_time_of_day.py b/tests/test_time_of_day.py index 12a2d2e..f4bc20b 100644 --- a/tests/test_time_of_day.py +++ b/tests/test_time_of_day.py @@ -14,7 +14,7 @@ from time import mktime import os import sys -sys.path.insert(0, os.path.abspath('../src')) +sys.path.insert(0, os.path.abspath('../pylib')) from time_of_day import (in_seconds, seconds, seconds_norm, minutes, minutes_norm, hours, hours_norm, days, days_norm, transform)