Unit Tests for Wavefront files and Poser files manipulation library
Project description
This file is the README of the unit tests and example package of:
- The pypos3d library.
- The pypos3dv 3D OpenGL Viewer
- The LibreOffice based GUI
1. INTRODUCTION:
This library is a port of the old DATA3D library of the OpenSource Pojamas project. I own both of them.
pypos3d aims to have a high level of quality. Each version is automatically tested with a set of unit tests. Coding rules are based on CNES (RNC-CNES-Q-HB-80-535) -CNES is the French National Space Agency-
2. INSTALLATION:
Library Installation:
The library shall be installed with pip:
python3 -m pip pypos3dtu
Each release of pypos3dtu shall test the same version of pypos3d library
Configuration Management System:
The code is managed on SourceForge platform under SVN: svn checkout svn://svn.code.sf.net/p/pojamas/svncode/ pojamas-svncode
Development and test files are gathered in directory PyPoser
This PyPoser directory contains an Eclipse/PyDev environment.
3. Tests:
Unit tests are delivered in this package (pypos3dtu) This library is tested with unitest with a target coverage rate over 90%.
Installation and commissionning tests are performed on:
- AlmaLinux 9, 8 Python 3.6 LibreOffice 6.4
- AlmaLinux 8 Python 3.9 LibreOffice 6.4
- Fedora >34 Python 3.10 LibreOffice 7.2
- Debian 10 (i386) Python 3.7 LibreOffice 7.0
- debian 11 Python 3.9 LibreOffice 7.1
- Microsoft Windows 10 Python 3.7 LibreOffice 7.0
Unit Tests:
To run the tests, 3 ways are available:
- Under Linux use script the tu.sh to launch all tests:
-
Tests are run within 2 environments: Python3.6 and Python3.9
-
Tests are run in parallel
-
Coverage Tests are run one by one (results in coverage_results.txt)
-
Detailed logs are generated in directory: pypos3dtu/tulog
-
Results are generated in directory: pypos3dtu/tures
- Outside Linux (in non dev environments):
-
Locate the installation directory of pypos3dtu
> python -c "import pypos3dtu; print(pypos3dtu.__path__[0])"
-
Change current directory to the previous value and create result directories:
> cd C:\Users\olivier\AppData\Roaming\Python\Python38\site-packages\pypos3dtu
> mkdir tulog rures
-
Execute manually the tests
> python -m unittest discover -p "tu*.py"
- In a development environment:
- Checkout the Eclipse project (cf. link above)
- Run tests from PyPoser/src/pypos3dtu
- Don't forfget to clean the 'tures' directory before check-in
Validation Tests:
Validation tests are 'free' tests excuted on the GUI (LibreOffice) and the viewer. Validation tests of the viewer (pypos3dv command) shall be run on various hardware platforms.
Tests Platforms:
Platform | CPU, RAM, GraphicCard | OS - Software |
---|---|---|
d21 | Intel Core) i5-11400H CPU @ 2.70GHz x86_64 - 6C/12T - RAM 32GB | AlmaLinux 8 Python 3.6.8 Python 3.9.7 PyOpenGL 3.1.5 Pillow 7.2 |
d6 | Intel Core) i5 CPU 750 @ 2.67GHz x86_64 - 4C/4T - RAM 4GB NVIDIA Corporation GF119 [GeForce GT 520] |
CentOS 7 Python 3.6.8 Pillow 6.2 nvidia-390xx-390.138-1.el7.x86_64 PyOpenGL 3.1.5 |
d8 | Intel Atom CPU N2800 @ 1.86GHz i386 - 2C/4T - RAM 4GB IGP 640MHz |
Debian 10 Python 3.7.3 Pillow 5.4.1 PyGLM 1.99.3 PyOpenGL 3.1.5 scipy 1.5.4 numpy 1.19.4 glfw 2.0.0 xlrd 2.0.1 |
d10 | Intel Pentium dual-Core CPU E5300 @ 2.60GHz x86_64 - 2C/2T - RAM 6GB NVIDIA GeForce 8600 GT/PCIe/SSE2 256MB |
Microsoft Windows 10 Python 3.8.7 Pillow 8.1.0 PyGLM 1.99.3 PyOpenGL 3.1.5 glfw 2.0.0 numpy 1.20.0 pip 21.0.1 scipy 1.6.0 xlrd 2.0.1 |
d9 | Intel Core2 Duo P8600 @ 2.4GHz x86_64 - 2C/4T - RAM 4GB IGP GM45 |
Fedora 34 Python 3.9.5 Pillow 8.2.0 PyGLM 2.2.0 PyOpenGL 3.1.5 glfw 2.1.0 numpy 1.20.3 pip 21.1.1 scipy 1.6.3 xlrd 2.0.1 |
d9b | Intel Pentium B970 @ 2.3GHz x86_64 - 2C/4T - RAM 4GB IGP GM45 |
Fedora 35 Python 3.10.5 Pillow 8.2.0 PyGLM 2.2.0 PyOpenGL 3.1.5 glfw 2.1.0 numpy 1.20.3 pip 21.1.1 scipy 1.6.3 xlrd 2.0.1 Debian 11 Python 3.9.2 Pillow 9.0.1 PyGLM 2.5.7 PyOpenGL 3.1.6 glfw 2.5.1 numpy 1.22.2 pip 22.0.4 scipy 1.8.0 xlrd 2.0.1 |
5. Tests Data:
Units tests are using some tests data (geometries, textures, material libs, ...). Tests data have been (usually) found on the web on: https://www.sharecg.com They are all free and usable for this product (non-commercial use or totally free)
In case of error on the license on embedded tests data, contact me. I'll fix it immediatly.
Included (partial) Open Source models:
-
https://www.sharecg.com/v/21521/gallery/11/Poser/Project-Human-Female
-
https://www.sharecg.com/v/44417/gallery/5/3D-Model/P-51D-Mustang
-
https://www.sharecg.com/v/86927/gallery/5/3D-Model/Hawker-Tempest-Mk5
-
https://www.sharecg.com/v/82070/gallery/11/Poser/403-Peugeot-1953
-
https://sharecg.com/v/99103/browse/21/DAZ-Studio/Shredder-Roadster-for-DAZ
-
https://sharecg.com/v/95857/browse/21/DAZ-Studio/DORONBOU-BIKE
Full respect, credit and so on to their initial models and licenses: Lucien Lilippe Neil Wilson Pedro Caparros
https://sharecg.com/pf/full_uploads.php?pf_user_name=shredder https://sharecg.com/pf/full_uploads.php?pf_user_name=guy91600
--> Many thanks to the contributors!
LICENCE:
This library and its unit tests are delivered under the BSD license.
KR, Olivier
Name Stmts Miss Cover
/home/olivier/workspace/PyPoser/src/pypos3d/init.py 4 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/dztk/Loader.py 146 146 0% /home/olivier/workspace/PyPoser/src/pypos3d/dztk/init.py 4 4 0% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/ChannelImportAnalysis.py 360 15 96% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/Figure.py 981 49 95% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/GeomCustom.py 170 8 95% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserBasic.py 993 23 98% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserFile.py 685 30 96% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserMeshed.py 811 68 92% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/SimpleAttribut.py 286 11 96% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/StructuredAttribut.py 1410 90 94% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/init.py 4 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/propslim/MxBasic.py 212 6 97% /home/olivier/workspace/PyPoser/src/pypos3d/propslim/MxStdModel.py 344 26 92% /home/olivier/workspace/PyPoser/src/pypos3d/propslim/PropSlim.py 203 12 94% /home/olivier/workspace/PyPoser/src/pypos3d/propslim/init.py 12 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/GeomGroup.py 965 35 96% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/PaveList2D.py 66 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/PoserFileParser.py 112 8 93% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/Repere.py 63 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/WFBasic.py 1298 59 95% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/WaveGeom.py 1608 60 96% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/init.py 4 0 100%
TOTAL 10741 650 94%
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pypos3dtu-2.2.0.tar.gz
.
File metadata
- Download URL: pypos3dtu-2.2.0.tar.gz
- Upload date:
- Size: 99.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.10 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c57d590d24210c210b6bb5cb1006497585fe3ff80bfbc14dc65210c839538709 |
|
MD5 | 9f0f561e1ab26fa9a7a0ab1575b1d588 |
|
BLAKE2b-256 | ba4d0f1427b93fb0044c429ee52a3a505da82fdc68f262c4148a8c5ff3a7b3f6 |