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 85%.
Installation and commissionning tests are performed on:
- CentOS 8, 7
- Fedora >30
- Microsoft Windows 10
- Debian 10 (i386)
Unit Tests:
To run the tests, 3 ways are available:
- Under Linux use script the tu.sh to launch all tests:
-
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:
> cd C:\Users\olivier\AppData\Roaming\Python\Python38\site-packages\pypos3dtu
-
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 |
---|---|---|
d16 | Intel Core) i7-7700HQ CPU @ 2.80GHz x86_64 - 4C/8T - RAM 16GB NVIDIA Corporation GP108M [GeForce MX150] |
CentOS 8 Stream Python 3.6.8 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 Pillow 8.1.0 pip 21.0.1 scipy 1.6.0 xlrd 2.0.1 |
d9 | Intel Core i5 x86_64 - 2C/4T - RAM 4GB IGP nnnMHz |
Fedora 33 |
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
Many thanks to the contributors!
LICENCE:
This library and its unit tests are delivered under the BSD license.
KR, Olivier
Unit Tests of pypos3d version 0.4.0 on mar. févr. 16 22:35:53 CET 2021 Name Stmts Miss Cover
/home/olivier/workspace/PyPoser/src/pypos3d/init.py 4 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/ChannelImportAnalysis.py 158 27 83% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/Figure.py 788 120 85% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/GeomCustom.py 166 23 86% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserBasic.py 811 45 94% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserFile.py 642 79 88% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserMeshed.py 663 94 86% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/SimpleAttribut.py 261 40 85% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/StructuredAttribut.py 1033 134 87% /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 324 24 93% /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/DebugPlotter.py 63 63 0% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/GeomGroup.py 661 86 87% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/PaveList2D.py 66 8 88% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/PoserFileParser.py 112 18 84% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/Repere.py 63 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/WFBasic.py 1112 143 87% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/WaveGeom.py 1229 153 88% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/init.py 4 0 100%
TOTAL 8591 1075 87%
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.