Skip to main content

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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypos3dtu-2.2.0.tar.gz (99.7 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page