# Path: sunds/tasks/boundaries_utils.py
# class MultiSceneBoundaries:
#   def __init__(self, scene_boundaries: List[ArrayDict]):
#   def get_corners(self, scene_name: TensorLike) -> Tuple[tf.Tensor, tf.Tensor]:
# 
# Path: sunds/typing.py



import contextlib
import numpy as np
import pytest
import sunds
import tensorflow as tf
import tensorflow_datasets as tfds
from sunds.tasks import boundaries_utils
from sunds.typing import FeatureSpecsHint
      split='train',
      task=sunds.tasks.Nerf(
          additional_frame_specs={'timestamp', 'pose'},
          additional_camera_specs={'intrinsics'},
          yield_mode=yield_mode,
      ),
  )
  assert 'timestamp' in ds.element_spec
  assert 'pose' in ds.element_spec
  if yield_mode == 'dict':
    assert 'intrinsics' in ds.element_spec['cameras']['default_camera']
  else:
    assert 'intrinsics' in ds.element_spec
  assert len(ds)  # pylint: disable=g-explicit-length-test
  list(ds)  # Pipeline can be executed


@pytest.mark.parametrize(
    'normalize_rays', [False, True], ids=['nonorm', 'norm'])
@pytest.mark.parametrize(
    'yield_mode',
    ['ray', 'image', 'stacked', 'dict'],
)
@pytest.mark.parametrize('additional_frame_specs', [{}, {'timestamp'}])
@pytest.mark.parametrize(
    'remove_invalid_rays', [False, True], ids=['keep', 'remove'])
def test_all_flags(
    lego_builder: sunds.core.DatasetBuilder,
    normalize_rays: bool,
    yield_mode: str,

# Path: sunds/tasks/boundaries_utils.py
# class MultiSceneBoundaries:
#   def __init__(self, scene_boundaries: List[ArrayDict]):
#   def get_corners(self, scene_name: TensorLike) -> Tuple[tf.Tensor, tf.Tensor]:
# 
# Path: sunds/typing.py



# Path: sunds/tasks/nerf_test.py
import contextlib
import numpy as np
import pytest
import sunds
import tensorflow as tf
import tensorflow_datasets as tfds
from sunds.tasks import boundaries_utils
from sunds.typing import FeatureSpecsHint

      split='train',
      task=sunds.tasks.Nerf(
          additional_frame_specs={'timestamp', 'pose'},
          additional_camera_specs={'intrinsics'},
          yield_mode=yield_mode,
      ),
  )
  assert 'timestamp' in ds.element_spec
  assert 'pose' in ds.element_spec
  if yield_mode == 'dict':
    assert 'intrinsics' in ds.element_spec['cameras']['default_camera']
  else:
    assert 'intrinsics' in ds.element_spec
  assert len(ds)  # pylint: disable=g-explicit-length-test
  list(ds)  # Pipeline can be executed


@pytest.mark.parametrize(
    'normalize_rays', [False, True], ids=['nonorm', 'norm'])
@pytest.mark.parametrize(
    'yield_mode',
    ['ray', 'image', 'stacked', 'dict'],
)
@pytest.mark.parametrize('additional_frame_specs', [{}, {'timestamp'}])
@pytest.mark.parametrize(
    'remove_invalid_rays', [False, True], ids=['keep', 'remove'])
def test_all_flags(
    lego_builder: sunds.core.DatasetBuilder,
    normalize_rays: bool,
    yield_mode: str,

    additional_frame_specs: FeatureSpecsHint,