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 unitests with a target coverage rate over 95%.
    
    Installation and commissionning tests are performed on:
    - AlmaLinux 9           Python 3.9   LibreOffice 7.1
    - AlmaLinux 9           Python 3.12  LibreOffice 7.1
    - Fedora >34            Python 3.10  LibreOffice 7.2
    - Debian 10 (i386)      Python 3.7   LibreOffice 7.0
    - Microsoft Windows 10  Python 3.10  LibreOffice 25
    
    ## 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.9 and Python3.12
     - 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 tures` 
    
     - 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 9**<br/>Python 3.9.21<br/>Python 3.12.5<br/>PyOpenGL 3.1.7<br/>Pillow 9.4.0|
    |d9       | Intel Core2 Duo P8600 @ 2.4GHz<br/> x86\_64 - 2C/4T - RAM 4GB<br/>IGP GM45|**Fedora 34**<br/>Python 3.9.5<br/>Pillow 8.2.0<br/> PyGLM      2.2.0<br/> PyOpenGL   3.1.5<br/> glfw       2.1.0<br/> numpy      1.20.3<br/>pip        21.1.1<br/> scipy      1.6.3<br/> xlrd 2.0.1|
    |d9b      | Intel Pentium B970 @ 2.3GHz<br/> x86\_64 - 2C/4T - RAM 4GB<br/>IGP GM45|**AlmaLinux 9**<br/>Python 3.11.2<br/>Pillow 10.0.1<br/> PyGLM      2.7.0<br/> PyOpenGL   3.1.7<br/> glfw       2.6.2<br/> numpy      1.26.0<br/>pip        23.2.1<br/> scipy      1.11.2<br/> 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:
    
      As of Summer 2025, ShareCG site has been closed, all the contents are more or less lost.
    	I keep, for memory, the former links
    
     - 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
     - https://sharecg.com/v/90883/browse/21/DAZ-Studio/maison1
    
    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.4.0.tar.gz (98.8 MB view details)

Uploaded Source

File details

Details for the file pypos3dtu-2.4.0.tar.gz.

File metadata

  • Download URL: pypos3dtu-2.4.0.tar.gz
  • Upload date:
  • Size: 98.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for pypos3dtu-2.4.0.tar.gz
Algorithm Hash digest
SHA256 6d09c47935463736348a3b1f677bf8a7f3ac5600b189a8b59244113a4654a857
MD5 cda9a40d013a7189a99c797419bdfb99
BLAKE2b-256 883b1d3e0338481bfd1d6229f93722d002ac8b63970f487922d0a82c2ea7c98e

See more details on using hashes here.

Supported by

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