org.scalautils.Normalization.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scalatest_2.9.1 Show documentation
Show all versions of scalatest_2.9.1 Show documentation
ScalaTest is a free, open-source testing toolkit for Scala and Java
programmers.
The newest version!
/* * Copyright 2001-2013 Artima, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.scalautils /** * Defines a custom way to normalize instances of a type. * *A so that it can be safely passed to* This trait exists to enforce that
* * @tparam A the type whose normalization is being defined */ trait Normalization[A] { thisNormalization => // TODO: Add an example of Array[String] isInstanceOfA here and in NormalizedEquality /** * Indicates whether the passed object is an instance of typeNormalizationinstances can be * passed towhenBothAreandwhenAllAre, but notdecidedBy. *A. * ** This method is invoked by the
areEqualmethod of subclassNormalizedEqualityto determine whether or not *bcan be cast tonormalized. * To implement this method, simply callb.isInstanceOf[A]for the actualAtype. * For example, if you are defining aNormalizedEquality[String], yourisInstanceOf* method should look like: * * ** def isInstanceOfA(b: Any) = b.isInstanceOf[String] ** ** If you are defining a
* *NormalizedEquality[xml.Node]yourisInstanceOfmethod * should look like: ** def isInstanceOfA(b: Any) = b.isInstanceOf[xml.Node] ** * @param b the object to inspect to determine whether it is an instance ofA* @return true if the passed object is an instance ofA*/ def normalizedIfInstanceOfA(b: Any): Any /** * Normalizes the passed object. * * @param a the object to normalize * @return the normalized form of the passed object */ def normalized(a: A): A final def and(other: Normalization[A]): Normalization[A] = new Normalization[A] { def normalizedIfInstanceOfA(b: Any): Any = other.normalizedIfInstanceOfA(thisNormalization.normalizedIfInstanceOfA(b)) // Note in Scaladoc what order, and recommend people don't do side effects anyway. // By order, I mean left's normalized gets called first then right's normalized gets called on that result, for "left and right" def normalized(a: A): A = other.normalized(thisNormalization.normalized(a)) } }
© 2015 - 2025 Weber Informatics LLC | Privacy Policy