Doctests for the fix_ffvt3rskinpartition spell
==============================================

>>> import os
>>> from os.path import dirname
>>> dirpath = __file__
>>> for i in range(4): #recurse up to root repo dir
...     dirpath = dirname(dirpath)
>>> repo_root = dirpath
>>> script_dir = os.path.join(repo_root, "scripts", "nif")
>>> import sys
>>> script = os.path.join(script_dir, "niftoaster.py")
>>> sys.path.insert(-1, script_dir.replace("\\\\", "/"))
>>> nif_dir = "tests/spells/nif/files/"


>>> import niftoaster
>>> sys.argv = ["niftoaster.py", "fix_ffvt3rskinpartition", "--dry-run", "--noninteractive", nif_dir + "test_fix_ffvt3rskinpartition.nif"]
>>> niftoaster.NifToaster().cli() # doctest: +ELLIPSIS +REPORT_NDIFF
pyffi.toaster:INFO:=== tests/spells/nif/files/test_fix_ffvt3rskinpartition.nif ===
pyffi.toaster:INFO:  --- fix_ffvt3rskinpartition ---
pyffi.toaster:INFO:    ~~~ NiNode [Bip01] ~~~
pyffi.toaster:INFO:      ~~~ NiNode [Bip01 Pelvis] ~~~
pyffi.toaster:INFO:        ~~~ NiNode [Bip01 Spine] ~~~
pyffi.toaster:INFO:          ~~~ NiNode [Bip01 Spine1] ~~~
pyffi.toaster:INFO:            ~~~ NiNode [Bip01 Spine2] ~~~
pyffi.toaster:INFO:              ~~~ NiNode [Bip01 Neck] ~~~
pyffi.toaster:INFO:                ~~~ NiNode [Bip01 Head] ~~~
pyffi.toaster:INFO:                ~~~ NiNode [Bip01 L Clavicle] ~~~
pyffi.toaster:INFO:                  ~~~ NiNode [Bip01 L UpperArm] ~~~
pyffi.toaster:INFO:                    ~~~ NiNode [Bip01 L Forearm] ~~~
pyffi.toaster:INFO:                ~~~ NiNode [Bip01 R Clavicle] ~~~
pyffi.toaster:INFO:                  ~~~ NiNode [Bip01 R UpperArm] ~~~
pyffi.toaster:INFO:                    ~~~ NiNode [Bip01 R Forearm] ~~~
pyffi.toaster:INFO:          ~~~ NiNode [Bip01 L Thigh] ~~~
pyffi.toaster:INFO:            ~~~ NiNode [Bip01 L Calf] ~~~
pyffi.toaster:INFO:              ~~~ NiNode [Bip01 L Foot] ~~~
pyffi.toaster:INFO:                ~~~ NiNode [Bip01 L Toe0] ~~~
pyffi.toaster:INFO:          ~~~ NiNode [Bip01 R Thigh] ~~~
pyffi.toaster:INFO:            ~~~ NiNode [Bip01 R Calf] ~~~
pyffi.toaster:INFO:              ~~~ NiNode [Bip01 R Foot] ~~~
pyffi.toaster:INFO:                ~~~ NiNode [Bip01 R Toe0] ~~~
pyffi.toaster:INFO:      ~~~ NiTriShape [Body] ~~~
pyffi.toaster:INFO:        updating skin partition
pyffi.nif.nitribasedgeom:INFO:Counted minimum of 1 and maximum of 3 bones per vertex
pyffi.nif.nitribasedgeom:INFO:Imposing maximum of 4 bones per vertex.
pyffi.nif.nitribasedgeom:INFO:Imposing maximum of 4 bones per triangle (and hence, per partition).
pyffi.nif.nitribasedgeom:INFO:Creating partitions
pyffi.nif.nitribasedgeom:INFO:Created 12 small partitions.
pyffi.nif.nitribasedgeom:INFO:Merging partitions.
pyffi.nif.nitribasedgeom:INFO:Skin has 12 partitions.
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 0
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 1
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 2
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 3
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 4
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 5
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 6
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 7
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 8
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 9
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 10
pyffi.nif.nitribasedgeom:INFO:Optimizing triangle ordering in partition 11
pyffi.toaster:INFO:  writing to temporary file
pyffi.toaster:INFO:Finished.

