Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore (test suite): skip or xfail random failures #45

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions tests/augmentation/test_augmentation.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import sys
from typing import Any, Dict, Optional, Tuple, Type
from unittest.mock import patch

Expand Down Expand Up @@ -59,6 +60,7 @@
from kornia.constants import Resample, pi
from kornia.geometry import transform_points
from kornia.utils import create_meshgrid
from kornia.utils._compat import torch_version
from kornia.utils.helpers import _torch_inverse_cast

from testing.augmentation.datasets import DummyMPDataset
Expand Down Expand Up @@ -4459,6 +4461,10 @@ def test_mask_transform(self, device, dtype):
)

@pytest.mark.parametrize("batch_prob", [[True, True], [False, True], [False, False]])
@pytest.mark.skipif(
torch_version() in {"1.11.0", "1.12.1"} and sys.version_info.minor == 10,
reason="failing because no gaussian mean",
)
def test_apply(self, batch_prob, device, dtype):
torch.manual_seed(0)

Expand Down
3 changes: 3 additions & 0 deletions tests/contrib/models/test_tiny_vit.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import sys

import pytest
import torch

Expand Down Expand Up @@ -35,6 +37,7 @@ def test_gradcheck(self): ...
@pytest.mark.skip("not implemented")
def test_module(self): ...

@pytest.mark.skipif(sys.version_info.major == 3 and sys.version_info.minor == 8, reason="not working for py3.8")
def test_dynamo(self, device, dtype, torch_optimizer):
op = TinyViT().to(device=device, dtype=dtype)
img = torch.rand(1, 3, op.img_size, op.img_size, device=device, dtype=dtype)
Expand Down
2 changes: 2 additions & 0 deletions tests/contrib/test_prompter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from kornia.contrib.models.sam import SamConfig
from kornia.contrib.visual_prompter import VisualPrompter
from kornia.utils._compat import torch_version

from testing.base import BaseTester

Expand Down Expand Up @@ -84,6 +85,7 @@ def test_gradcheck(self, device): ...
@pytest.mark.skip(reason="Unnecessary test")
def test_module(self): ...

@pytest.mark.skipif(torch_version() in {"2.1.2", "2.0.1"}, reason="Not working well")
def test_dynamo(self, device, torch_optimizer):
dtype = torch.float32
batch_size = 1
Expand Down
2 changes: 1 addition & 1 deletion tests/filters/test_canny.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ def test_module(self, device, dtype):
@pytest.mark.skipif(torch_version() in {"2.0.0", "2.0.1"}, reason="Not working on 2.0")
def test_dynamo(self, batch_size, kernel_size, device, dtype, torch_optimizer):
if (
torch_version() in {"2.1.1", "2.1.2", "2.2.0"}
torch_version() in {"2.1.1", "2.1.2", "2.2.2", "2.3.1"}
and dtype == torch.float64
and (isinstance(kernel_size, int) or kernel_size[0] == kernel_size[1])
):
Expand Down
2 changes: 2 additions & 0 deletions tests/filters/test_sobel.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import torch

from kornia.filters import Sobel, SpatialGradient, SpatialGradient3d, sobel, spatial_gradient, spatial_gradient3d
from kornia.utils._compat import torch_version

from testing.base import BaseTester

Expand Down Expand Up @@ -242,6 +243,7 @@ def test_module(self, device, dtype):
@pytest.mark.parametrize("mode", ["sobel", "diff"])
@pytest.mark.parametrize("order", [1, 2])
@pytest.mark.parametrize("batch_size", [1, 2])
@pytest.mark.xfail(torch_version() in {"2.0.1"}, reason="random failing")
def test_dynamo(self, batch_size, order, mode, device, dtype, torch_optimizer):
inpt = torch.ones(batch_size, 3, 10, 10, device=device, dtype=dtype)
if order == 1 and dtype == torch.float64:
Expand Down
1 change: 1 addition & 0 deletions tests/geometry/epipolar/test_fundamental.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ def test_synthetic_sampson_7point(self, device, dtype):
error = epi.sampson_epipolar_distance(x1, x2, F)
self.assert_close(error, torch.zeros((F.shape[0], 7), device=device, dtype=dtype), atol=1e-4, rtol=1e-4)

@pytest.mark.xfail()
def test_epipolar_constraint_7point(self, device, dtype):
scene: Dict[str, torch.Tensor] = generate_two_view_random_scene(device, dtype)
x1 = scene["x1"][:, :7, :]
Expand Down
6 changes: 6 additions & 0 deletions tests/geometry/test_conversions.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import sys
from functools import partial

import numpy as np
Expand All @@ -19,6 +20,7 @@
worldtocam_to_camtoworld_Rt,
)
from kornia.geometry.quaternion import Quaternion
from kornia.utils._compat import torch_version
from kornia.utils.misc import eye_like

from testing.base import BaseTester, assert_close
Expand Down Expand Up @@ -1109,6 +1111,10 @@ def test_gradcheck(self, device):
q = Quaternion.random(batch_size=1).to(device, torch.float64)
self.gradcheck(euler_from_quaternion, (q.w, q.x, q.y, q.z))

@pytest.mark.skipif(
torch_version() in {"2.0.1", "2.1.2", "2.2.2", "2.3.1"} and sys.version_info.minor == 8,
reason="Not working on 2.0",
)
def test_dynamo(self, device, dtype, torch_optimizer):
q = Quaternion.random(batch_size=1)
q = q.to(device, dtype)
Expand Down
1 change: 1 addition & 0 deletions tests/geometry/transform/test_image_registrator.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ def test_smoke(self, device, dtype, model_type):
assert ir is not None

@pytest.mark.slow
@pytest.mark.xfail(torch_version() in {"2.0.0", "2.0.1", "2.1.2", "2.2.2"}, reason="failing at some 2.x torch")
def test_registration_toy(self, device, dtype):
ch, height, width = 3, 16, 18
homography = torch.eye(3, device=device, dtype=dtype)[None]
Expand Down
2 changes: 2 additions & 0 deletions tests/losses/test_hd.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ def test_exception_3d(self):
assert "Invalid target value" in str(errinf)

def test_numeric(self, device, dtype):
if dtype == torch.float64:
pytest.xfail("Sometimes failing on float64")
num_classes = 3
shape = (50, 50)
hd = kornia.losses.HausdorffERLoss
Expand Down
Loading