src.tests.spconv3d_arch_test

Classes

SpConv3DArchTest()

class src.tests.spconv3d_arch_test.SpConv3DArchTest
Author:

Alberto M. Esmoris Pena

Sparse 3D convolutional architecture test. Compares the layer-by-layer and encoder/decoder build paths for bit-equivalence on a tiny synthetic point cloud through the dense-gather architecture interface (no hk, no hv, no start tensors — neighbor tables only).

Additionally verifies:

  • Passing the legacy submanifold_filters field raises DeepLearningException with a migration message.

  • The architecture trains for one epoch on synthetic input and produces predictions of the expected per-RF row count after DLSparseConcatSequencer.post_process_output.

MAX_DEPTH = 3
__init__()

Basic configuration for any VL3D test.

Parameters:

name (str) – Test name

run()

Run the test.

Returns:

True if test is successfully passed, False otherwise.

Return type:

bool

subtest_legacy_filters_rejected()

Passing the legacy submanifold_filters field must raise DeepLearningException with a migration message that names submanifold_features and the standard sparse-conv math.

subtest_smoke_train_and_predict()

Build a small SpConv model in encoder/decoder mode, train for a single epoch on synthetic data, and confirm the prediction list matches the per-RF row counts.

subtest_layer_by_layer_vs_fused_paths()

The layer-by-layer build helpers still use the unmasked BatchNormalization while the only available sequencer pads every batch with zero rows, which would silently bias the BN running statistics. The architecture refuses the combination at instantiation; this subtest verifies the explicit rejection and confirms the fused path still round-trips fit / predict cleanly.