2020-06-24 15:21:26 -04:00
|
|
|
import pytest
|
2020-06-24 15:46:32 -04:00
|
|
|
import os
|
|
|
|
|
2020-06-24 15:40:32 -04:00
|
|
|
import numpy as np
|
2020-06-24 15:21:26 -04:00
|
|
|
|
2020-11-02 10:42:25 -05:00
|
|
|
from trnslator import utils, timeit, settings
|
2020-06-24 15:40:32 -04:00
|
|
|
from geomeppy.geom.polygons import Polygon3D
|
2020-06-24 16:06:41 -04:00
|
|
|
from datetime import datetime
|
2020-06-24 15:21:26 -04:00
|
|
|
|
|
|
|
|
2020-06-24 15:22:28 -04:00
|
|
|
def test_rotate(config):
|
|
|
|
# Shift list elements to the left
|
|
|
|
l1 = [1, 2, 3] # list
|
|
|
|
n = 1 # shift 1 position to the left
|
|
|
|
l2 = utils.rotate(l1, n)
|
|
|
|
|
2020-06-24 15:40:32 -04:00
|
|
|
assert l2 == [2, 3, 1]
|
|
|
|
|
2020-06-24 15:25:58 -04:00
|
|
|
@timeit
|
2020-06-24 16:06:41 -04:00
|
|
|
def test_lcm():
|
2020-06-24 15:22:50 -04:00
|
|
|
# This function takes two integers and returns the L.C.M.
|
|
|
|
x = 10
|
|
|
|
y = 50
|
|
|
|
lcm = utils.lcm(x, y)
|
|
|
|
|
2020-06-24 16:06:41 -04:00
|
|
|
assert lcm == 50
|
2020-06-24 15:22:50 -04:00
|
|
|
|
|
|
|
|
2020-06-24 15:40:32 -04:00
|
|
|
def test_float_round(config):
|
|
|
|
# Makes sure a variable is a float and round it at "n" decimals
|
|
|
|
num = 40.24
|
|
|
|
n = 1
|
|
|
|
float_num = utils.float_round(num, n)
|
2020-06-24 15:22:28 -04:00
|
|
|
|
2020-06-24 15:40:32 -04:00
|
|
|
assert float_num == 40.2
|
2020-06-24 15:21:26 -04:00
|
|
|
|
|
|
|
|
2020-06-24 15:46:32 -04:00
|
|
|
def test_angle(config):
|
2020-06-24 15:41:00 -04:00
|
|
|
# Calculate the angle between 2 vectors
|
|
|
|
# Polygon1 & vector1
|
|
|
|
poly1 = Polygon3D(
|
|
|
|
[(215.5, 5.0, 0.5), (215.5, 5.0, 2.0), (217.0, 5.0, 2.0), (217.0, 5.0, 0.5)]
|
|
|
|
)
|
|
|
|
v1 = poly1.normal_vector
|
|
|
|
v2 = v1
|
|
|
|
angle = utils.angle(v1, v2, acute=False)
|
|
|
|
|
|
|
|
assert angle == 2 * np.pi
|
2020-06-24 15:46:32 -04:00
|
|
|
|
|
|
|
|
|
|
|
def test_write_lines(config):
|
|
|
|
# Delete file if exists, then write lines in it
|
2020-06-24 16:06:41 -04:00
|
|
|
path = os.path.join(settings.data_folder, "write_lines.txt")
|
2020-06-24 15:46:32 -04:00
|
|
|
lines = ["Test to write lines in file", "2nd line", "end of document"]
|
|
|
|
utils.write_lines(path, lines)
|
|
|
|
|
|
|
|
assert os.path.exists(path)
|
2020-06-24 15:51:58 -04:00
|
|
|
|
|
|
|
|
|
|
|
def test_date_transform(config):
|
|
|
|
# Simple function transforming one-based hours (1->24) into zero-based hours (0->23)
|
|
|
|
date_str = "08:10"
|
|
|
|
new_date = utils.date_transform(date_str)
|
|
|
|
|
2020-06-24 16:06:41 -04:00
|
|
|
assert new_date == datetime(1900, 1, 1, 7, 10)
|