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:
- CentOS 8, 7 Python 3.6 LibreOffice 6.4
- Fedora >30 Python 3.9 LibreOffice 7.1
- Microsoft Windows 10 Python 3.7 LibreOffice 7.0
- Debian 10 (i386) 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 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 |
---|---|---|
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 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 |
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
Full respect, credit and so on to their initial models and licenses: Lucien Lilippe Neil Wilson Pedro Caparros
--> 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/pftk/ChannelImportAnalysis.py 215 12 94% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/Figure.py 926 79 91% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/GeomCustom.py 172 12 93% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserBasic.py 851 36 96% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserFile.py 650 58 91% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/PoserMeshed.py 814 65 92% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/SimpleAttribut.py 272 18 93% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/StructuredAttribut.py 1205 103 91% /home/olivier/workspace/PyPoser/src/pypos3d/pftk/init.py 4 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/propslim/MxBasic.py 212 7 97% /home/olivier/workspace/PyPoser/src/pypos3d/propslim/MxStdModel.py 329 27 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 740 54 93% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/PaveList2D.py 66 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/PoserFileParser.py 112 10 91% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/Repere.py 63 0 100% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/WFBasic.py 1127 81 93% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/WaveGeom.py 1276 81 94% /home/olivier/workspace/PyPoser/src/pypos3d/wftk/init.py 4 0 100%
TOTAL 9257 655 93%
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.