sourcery_oracle_m Module

verify actual output against expected


Uses

  • module~~sourcery_oracle_m~~UsesGraph module~sourcery_oracle_m sourcery_oracle_m module~sourcery_object_m sourcery_object_m module~sourcery_oracle_m->module~sourcery_object_m

Used by

  • module~~sourcery_oracle_m~~UsedByGraph module~sourcery_oracle_m sourcery_oracle_m module~sourcery_m sourcery_m module~sourcery_m->module~sourcery_oracle_m module~sourcery_oracle_s sourcery_oracle_s module~sourcery_oracle_s->module~sourcery_oracle_m module~sourcery_string_s sourcery_string_s module~sourcery_string_s->module~sourcery_m

Interfaces

interface

  • private module function within_tolerance(self, reference, tolerance) result(in_tolerance)

    template method with true result iff the difference in state vectors (self - reference) has a norm within tolerance (impure because of internal call to 'subtract' binding) The existence of self procedure eliminates the need to rewrite similar code for every oracle child type.

    Arguments

    Type IntentOptional Attributes Name
    class(oracle_t), intent(in) :: self
    class(oracle_t), intent(in) :: reference
    real, intent(in) :: tolerance

    Return Value logical


Abstract Interfaces

abstract interface

  • private pure function norm_interface(self) result(norm_of_self)

    result is a norm of the array formed by concatenating the real components of self object

    Arguments

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

    Return Value real

abstract interface

  • private function subtract_interface(self, rhs) result(difference)

    result has components corresponding to subtracting rhs's components fron self object's components

    Arguments

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

    Return Value class(oracle_t), allocatable


Derived Types

type, public, abstract, extends(object_t) ::  oracle_t

define procedures for testing output values against expected values

Type-Bound Procedures

procedure, public :: mark_as_defined
procedure(norm_interface), public, deferred :: norm
generic, public :: operator(-) => subtract
procedure(subtract_interface), public, deferred :: subtract
procedure, public :: user_defined
procedure, public :: within_tolerance
generic, public :: write(formatted) => write_formatted
procedure(write_interface), public, deferred :: write_formatted