julienne_test_diagnosis_m Module

Define abstractions, defined operations, and procedures for writing correctness checks


Uses

  • module~~julienne_test_diagnosis_m~~UsesGraph module~julienne_test_diagnosis_m julienne_test_diagnosis_m iso_c_binding iso_c_binding module~julienne_test_diagnosis_m->iso_c_binding module~julienne_string_m julienne_string_m module~julienne_test_diagnosis_m->module~julienne_string_m module~julienne_string_m->iso_c_binding

Used by

  • module~~julienne_test_diagnosis_m~~UsedByGraph module~julienne_test_diagnosis_m julienne_test_diagnosis_m module~julienne_assert_m julienne_assert_m module~julienne_assert_m->module~julienne_test_diagnosis_m module~julienne_bin_s julienne_bin_s module~julienne_bin_s->module~julienne_test_diagnosis_m module~julienne_bin_s->module~julienne_assert_m module~julienne_m julienne_m module~julienne_m->module~julienne_test_diagnosis_m module~julienne_m->module~julienne_assert_m module~julienne_test_description_m julienne_test_description_m module~julienne_m->module~julienne_test_description_m module~julienne_test_result_m julienne_test_result_m module~julienne_m->module~julienne_test_result_m module~julienne_test_m julienne_test_m module~julienne_m->module~julienne_test_m module~julienne_test_fixture_m julienne_test_fixture_m module~julienne_m->module~julienne_test_fixture_m module~julienne_test_harness_m julienne_test_harness_m module~julienne_m->module~julienne_test_harness_m module~julienne_string_s julienne_string_s module~julienne_string_s->module~julienne_test_diagnosis_m module~julienne_string_s->module~julienne_assert_m module~julienne_test_description_m->module~julienne_test_diagnosis_m module~julienne_test_description_m->module~julienne_test_result_m module~julienne_test_diagnosis_s julienne_test_diagnosis_s module~julienne_test_diagnosis_s->module~julienne_test_diagnosis_m module~julienne_test_result_m->module~julienne_test_diagnosis_m module~julienne_assert_s julienne_assert_s module~julienne_assert_s->module~julienne_assert_m module~julienne_test_description_s julienne_test_description_s module~julienne_test_description_s->module~julienne_assert_m module~julienne_test_description_s->module~julienne_test_description_m module~julienne_test_m->module~julienne_test_description_m module~julienne_test_m->module~julienne_test_result_m module~julienne_test_result_s julienne_test_result_s module~julienne_test_result_s->module~julienne_test_result_m module~julienne_test_s julienne_test_s module~julienne_test_s->module~julienne_test_description_m module~julienne_test_s->module~julienne_test_m module~julienne_test_suite_s julienne_test_suite_s module~julienne_test_suite_s->module~julienne_m program~assertions assertions program~assertions->module~julienne_m program~check_for_command_line_argument check_for_command_line_argument program~check_for_command_line_argument->module~julienne_m program~get_command_line_flag_value get_command_line_flag_value program~get_command_line_flag_value->module~julienne_m program~scaffold scaffold program~scaffold->module~julienne_m module~julienne_test_fixture_m->module~julienne_test_m module~julienne_test_fixture_s julienne_test_fixture_s module~julienne_test_fixture_s->module~julienne_test_fixture_m module~julienne_test_harness_m->module~julienne_test_fixture_m module~julienne_test_harness_s julienne_test_harness_s module~julienne_test_harness_s->module~julienne_test_harness_m

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: default_real = kind(1.)
integer, private, parameter :: double_precision = kind(1D0)

Interfaces

public interface operator(.all.)

public interface operator(.also.)

public interface operator(.and.)

public interface operator(.approximates.)

  • private elemental module function approximates_double_precision(actual, expected) result(operands)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected

    Return Value type(operands_t(double_precision))

  • private elemental module function approximates_real(actual, expected) result(operands)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected

    Return Value type(operands_t)

public interface operator(.equalsExpected.)

  • private elemental module function equals_expected_c_ptr(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), intent(in) :: actual
    type(c_ptr), intent(in) :: expected

    Return Value type(test_diagnosis_t)

  • private elemental module function equals_expected_character(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: actual
    character(len=*), intent(in) :: expected

    Return Value type(test_diagnosis_t)

  • private elemental module function equals_expected_character_vs_string(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: actual
    type(string_t), intent(in) :: expected

    Return Value type(test_diagnosis_t)

  • private elemental module function equals_expected_integer(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected

    Return Value type(test_diagnosis_t)

  • private elemental module function equals_expected_integer_c_size_t(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_size_t), intent(in) :: actual
    integer(kind=c_size_t), intent(in) :: expected

    Return Value type(test_diagnosis_t)

  • private elemental module function equals_expected_string(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: actual
    type(string_t), intent(in) :: expected

    Return Value type(test_diagnosis_t)

  • private elemental module function equals_expected_string_vs_character(actual, expected) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: actual
    character(len=*), intent(in) :: expected

    Return Value type(test_diagnosis_t)

public interface operator(.expect.)

  • private elemental module function expect(expected_true) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: expected_true

    Return Value type(test_diagnosis_t)

public interface operator(.greaterThan.)

  • private elemental module function greater_than_double(actual, expected_floor) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected_floor

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_integer(actual, expected_floor) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected_floor

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_real(actual, expected_floor) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected_floor

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_or_equal_to_double_precision(actual, expected_min) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected_min

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_or_equal_to_integer(actual, expected_min) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected_min

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_or_equal_to_real(actual, expected_min) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected_min

    Return Value type(test_diagnosis_t)

public interface operator(.isAfter.)

  • private elemental module function reverse_alphabetical_character_vs_character(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: lhs
    character(len=*), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function reverse_alphabetical_character_vs_string(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: lhs
    type(string_t), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function reverse_alphabetical_string_vs_character(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: lhs
    character(len=*), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function reverse_alphabetical_string_vs_string(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: lhs
    type(string_t), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

public interface operator(.isAtLeast.)

  • private elemental module function greater_than_or_equal_to_integer(actual, expected_min) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected_min

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_or_equal_to_real(actual, expected_min) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected_min

    Return Value type(test_diagnosis_t)

  • private elemental module function greater_than_or_equal_to_double_precision(actual, expected_min) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected_min

    Return Value type(test_diagnosis_t)

public interface operator(.isAtMost.)

  • private elemental module function less_than_or_equal_to_integer(actual, expected_max) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected_max

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_or_equal_to_real(actual, expected_max) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected_max

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_or_equal_to_double_precision(actual, expected_max) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected_max

    Return Value type(test_diagnosis_t)

public interface operator(.isBefore.)

  • private elemental module function alphabetical_character_vs_character(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: lhs
    character(len=*), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function alphabetical_character_vs_string(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: lhs
    type(string_t), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function alphabetical_string_vs_character(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: lhs
    character(len=*), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function alphabetical_string_vs_string(lhs, rhs) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: lhs
    type(string_t), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

public interface operator(.lessThan.)

  • private elemental module function less_than_double(actual, expected_ceiling) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected_ceiling

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_integer(actual, expected_ceiling) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected_ceiling

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_real(actual, expected_ceiling) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected_ceiling

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_or_equal_to_double_precision(actual, expected_max) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    double precision, intent(in) :: actual
    double precision, intent(in) :: expected_max

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_or_equal_to_integer(actual, expected_max) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: actual
    integer, intent(in) :: expected_max

    Return Value type(test_diagnosis_t)

  • private elemental module function less_than_or_equal_to_real(actual, expected_max) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: actual
    real, intent(in) :: expected_max

    Return Value type(test_diagnosis_t)

public interface operator(.within.)

  • private elemental module function within_double_precision(operands, tolerance) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(operands_t(double_precision)), intent(in) :: operands
    double precision, intent(in) :: tolerance

    Return Value type(test_diagnosis_t)

  • private elemental module function within_real(operands, tolerance) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(operands_t), intent(in) :: operands
    real, intent(in) :: tolerance

    Return Value type(test_diagnosis_t)

public interface operator(.withinFraction.)

  • private elemental module function within_double_precision_fraction(operands, fractional_tolerance) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(operands_t(double_precision)), intent(in) :: operands
    double precision, intent(in) :: fractional_tolerance

    Return Value type(test_diagnosis_t)

  • private elemental module function within_real_fraction(operands, fractional_tolerance) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(operands_t), intent(in) :: operands
    real, intent(in) :: fractional_tolerance

    Return Value type(test_diagnosis_t)

public interface operator(.withinPercentage.)

  • private elemental module function within_double_precision_percentage(operands, percentage_tolerance) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(operands_t(double_precision)), intent(in) :: operands
    double precision, intent(in) :: percentage_tolerance

    Return Value type(test_diagnosis_t)

  • private elemental module function within_real_percentage(operands, percentage_tolerance) result(test_diagnosis)

    Arguments

    Type IntentOptional Attributes Name
    type(operands_t), intent(in) :: operands
    real, intent(in) :: percentage_tolerance

    Return Value type(test_diagnosis_t)

public interface operator(//)

  • private elemental module function append_character_if_test_failed(lhs, rhs) result(lhs_cat_rhs)

    Arguments

    Type IntentOptional Attributes Name
    class(test_diagnosis_t), intent(in) :: lhs
    character(len=*), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

  • private elemental module function append_string_if_test_failed(lhs, rhs) result(lhs_cat_rhs)

    Arguments

    Type IntentOptional Attributes Name
    class(test_diagnosis_t), intent(in) :: lhs
    type(string_t), intent(in) :: rhs

    Return Value type(test_diagnosis_t)

public interface test_diagnosis_t

  • private elemental module function construct_from_character(test_passed, diagnostics_string) result(test_diagnosis)

    The result is a test_diagnosis_t object with the components defined by the dummy arguments

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: test_passed
    character(len=*), intent(in) :: diagnostics_string

    Return Value type(test_diagnosis_t)

  • private elemental module function construct_from_string_t(test_passed, diagnostics_string) result(test_diagnosis)

    The result is a test_diagnosis_t object with the components defined by the dummy arguments

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: test_passed
    type(string_t), intent(in) :: diagnostics_string

    Return Value type(test_diagnosis_t)

interface

  • private elemental module function diagnostics_string(self) result(string_)

    The result is a string describing the condition(s) that caused a test failure

    Arguments

    Type IntentOptional Attributes Name
    class(test_diagnosis_t), intent(in) :: self

    Return Value type(string_t)

interface

  • private elemental module function test_passed(self) result(passed)

    The result is .true. if the test passed and false otherwise

    Arguments

    Type IntentOptional Attributes Name
    class(test_diagnosis_t), intent(in) :: self

    Return Value logical


Abstract Interfaces

abstract interface

  • public function diagnosis_function_i() result(test_diagnosis)

    Arguments

    None

    Return Value type(test_diagnosis_t)


Derived Types

type, public ::  test_diagnosis_t

Encapsulate test outcome and diagnostic information

Components

Type Visibility Attributes Name Initial
character(len=:), private, allocatable :: diagnostics_string_
logical, private :: test_passed_ = .false.

Constructor

private elemental, module function construct_from_character (test_passed, diagnostics_string)

The result is a test_diagnosis_t object with the components defined by the dummy arguments

private elemental, module function construct_from_string_t (test_passed, diagnostics_string)

The result is a test_diagnosis_t object with the components defined by the dummy arguments

Type-Bound Procedures

procedure, public, non_overridable :: diagnostics_string
procedure, public, non_overridable :: test_passed

type, private ::  double_precision_operands_t

Components

Type Visibility Attributes Name Initial
double precision, public :: actual
double precision, public :: expected

type, private ::  operands_t

Components

Type Visibility Attributes Name Initial
real(kind=k), public :: actual
real(kind=k), public :: expected
integer, public, kind :: k = default_real

type, private ::  operands_t

Components

Type Visibility Attributes Name Initial
real, public :: actual
real, public :: expected