Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package scalactic
    Definition Classes
    org
  • trait Explicitly extends AnyRef

    Provides ScalaTest's “explicitly DSL,” which facilitates the explicit specification of an Equality[T] or a Uniformity[T] where Equality[T] is taken implicitly.

    Provides ScalaTest's “explicitly DSL,” which facilitates the explicit specification of an Equality[T] or a Uniformity[T] where Equality[T] is taken implicitly.

    The Explicitly DSL can be used with the === and !== operators of Scalactic as well as the should equal, be, contain, and === syntax of ScalaTest matchers.

    If you want to customize equality for a type in general, you would likely want to place an implicit Equality[T] for that type in scope (or in T's companion object). That implicit equality definition will then be picked up and used when that type is compared for equality with the equal, be, and contain matchers in ScalaTest tests and with === in both tests and production code. If you just want to use a custom equality for a single comparison, however, you may prefer to pass it explicitly. For example, if you have an implicit Equality[String] in scope, you can force a comparison to use the default equality with this syntax:

    // In production code:
    if ((result === "hello")(decided by defaultEquality)) true else false
    
    // In tests:
    result should equal ("hello") (decided by defaultEquality)
    

    The explicitly DSL also provides support for specifying a one-off equality that is based on a normalization. For example, Scalactic offers a StringNormalizations trait that provides methods such as trimmed and lowerCased that return Normalization[String] instances that normalize by trimming and lower-casing, respectively. If you bring those into scope by mixing in or importing the members of StringNormalizations, you could use the explicitly DSL like this:

    // In production code:
    if ((result === "hello")(after being lowerCased)) true else false
    
    // In tests:
    result should equal ("hello") (after being lowerCased and trimmed)
    

    If you prefer not to use English-like DSLs in your production code, you can alternatively not use the Explicitly trait and instead write:

    // To explicitly specify an Equality instance, just specify it:
    if ((result === "hello")(Equality.default)) true else false
    
    // To base an Equality instance on a Uniformity, just
    // call toEquality on it:
    if ((result === "hello")(lowerCased.toEquality)) true else false
    

    Definition Classes
    scalactic
  • DecidedByEquality
  • DecidedWord
  • DeterminedByEquivalence
  • DeterminedWord
  • TheAfterWord
c

org.scalactic.Explicitly

DecidedByEquality

class DecidedByEquality[A] extends Equality[A]

This class is part of the Scalactic “explicitly DSL”. Please see the documentation for Explicitly for an overview of the explicitly DSL.

Instances of this class are returned via the decided by <an Equality> syntax, and enables afterBeing to be invoked on it. Here's an example, given an Equality[String] named myStringEquality:

result should equal ("hello") (decided by myStringEquality afterBeing lowerCased)

Source
Explicitly.scala
Linear Supertypes
Equality[A], Equivalence[A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DecidedByEquality
  2. Equality
  3. Equivalence
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new DecidedByEquality(equality: Equality[A])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def afterBeing(uniformity: Uniformity[A]): NormalizingEquality[A]

    This method enables syntax such as the following, given an Equality[String] named myStringEquality:

    This method enables syntax such as the following, given an Equality[String] named myStringEquality:

    result should equal ("hello") (decided by myStringEquality afterBeing lowerCased)
                                                               ^
    

    uniformity

    A Uniformity with which to normalize objects of type A before comparing them for equality using the Equality[A] passed to this object's constructor.

  5. def areEqual(a: A, b: Any): Boolean

    Indicates whether the objects passed as a and b are equal by delegating to the areEqual method of the Equality[T] passed to this class's constructor.

    Indicates whether the objects passed as a and b are equal by delegating to the areEqual method of the Equality[T] passed to this class's constructor.

    a

    a left-hand-side object being compared with another (right-hand-side one) for equality (e.g., a == b)

    b

    a right-hand-side object being compared with another (left-hand-side one) for equality (e.g., a == b)

    returns

    true if the passed objects are "equal," as defined by this Equality instance

    Definition Classes
    DecidedByEqualityEquality
  6. final def areEquivalent(a: A, b: A): Boolean

    A final implementation of the areEquivalent method of Equivalence that just passes a and b to areEqual and returns the result.

    A final implementation of the areEquivalent method of Equivalence that just passes a and b to areEqual and returns the result.

    This method enables any Equality to be used where an Equivalence is needed, such as the implicit enabling methods of TypeCheckedTripleEquals and ConversionCheckedTripleEquals.

    a

    a left-hand value being compared with another, right-hand, value for equality (e.g., a == b)

    b

    a right-hand value being compared with another, left-hand, value for equality (e.g., a == b)

    returns

    true if the passed objects are "equal," as defined by the areEqual method of this Equality instance

    Definition Classes
    EqualityEquivalence
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Equality[A]

Inherited from Equivalence[A]

Inherited from AnyRef

Inherited from Any

Ungrouped