Coverage for tests/test_complex_function_has_dp.py: 100%

1# pylint: disable=W0621,C0116,C0114

2 import pytest

3

4 from castep_linter import tests

5 from castep_linter.fortran.parser import get_fortran_parser

6 from castep_linter.scan_files import run_tests_on_code

7

8

9@pytest.fixture

10 def test_list():

11 return {"call_expression": [tests.check_complex_has_dp]}

12

13

14@pytest.fixture

15 def parser():

16 return get_fortran_parser()

17

18

19 def test_other_function(parser, test_list):

20 code = b"y = myownfunction(a, b, dp)"

21 error_log = run_tests_on_code(parser, code, test_list, "filename")

22 assert len(error_log.errors) == 0

23

24

25 def test_complex_dp_correct(parser, test_list):

26 code = b"y = CMPLX(a, b, dp)"

27 error_log = run_tests_on_code(parser, code, test_list, "filename")

28 assert len(error_log.errors) == 0

29

30

31 def test_complex_dp_correct_keyword(parser, test_list):

32 code = b"y = CMPLX(z, kind=dp)"

33 error_log = run_tests_on_code(parser, code, test_list, "filename")

34 assert len(error_log.errors) == 0

35

36

37 def test_complex_dp_wrong_place(parser, test_list):

38 code = b"y = CMPLX(z, dp)"

39 error_log = run_tests_on_code(parser, code, test_list, "filename")

40 assert len(error_log.errors) == 1

41

42

43 def test_complex_dp_missing(parser, test_list):

44 code = b"y = CMPLX(a, b)"

45 error_log = run_tests_on_code(parser, code, test_list, "filename")

46 assert len(error_log.errors) == 1

47

48

49 def test_complex_wrong_kind(parser, test_list):

50 code = b"y = CMPLX(a, b, x)"

51 error_log = run_tests_on_code(parser, code, test_list, "filename")

52 assert len(error_log.errors) == 1