diff --git a/Surge.xcodeproj/project.pbxproj b/Surge.xcodeproj/project.pbxproj index a0b4218..cb7de72 100644 --- a/Surge.xcodeproj/project.pbxproj +++ b/Surge.xcodeproj/project.pbxproj @@ -96,6 +96,7 @@ 61E930C92070BCCD00694FCB /* ArraySlice+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61E930C72070BCCD00694FCB /* ArraySlice+Extensions.swift */; }; 61E930CA2070BCCD00694FCB /* ArraySlice+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61E930C72070BCCD00694FCB /* ArraySlice+Extensions.swift */; }; 61E930CB2070BCCD00694FCB /* ArraySlice+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61E930C72070BCCD00694FCB /* ArraySlice+Extensions.swift */; }; + CAAF4FD02338F09700CC0AA7 /* ScalarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAAF4FCF2338F09700CC0AA7 /* ScalarTests.swift */; }; CAEC79BF2319274F00516E10 /* OperatorPrecedences.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAEC79B72319244D00516E10 /* OperatorPrecedences.swift */; }; CAEC79C02319275000516E10 /* OperatorPrecedences.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAEC79B72319244D00516E10 /* OperatorPrecedences.swift */; }; CAEC79C12319275000516E10 /* OperatorPrecedences.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAEC79B72319244D00516E10 /* OperatorPrecedences.swift */; }; @@ -182,6 +183,7 @@ 61E930BC2070104600694FCB /* Array+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Array+Extensions.swift"; sourceTree = ""; }; 61E930C12070B69300694FCB /* UnsafeMutableMemory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnsafeMutableMemory.swift; sourceTree = ""; }; 61E930C72070BCCD00694FCB /* ArraySlice+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ArraySlice+Extensions.swift"; sourceTree = ""; }; + CAAF4FCF2338F09700CC0AA7 /* ScalarTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScalarTests.swift; sourceTree = ""; }; CAEC79B72319244D00516E10 /* OperatorPrecedences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OperatorPrecedences.swift; sourceTree = ""; }; CAEC79C323192FE300516E10 /* Scalar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Scalar.swift; sourceTree = ""; }; CAEC79D12319343100516E10 /* Logarithm.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logarithm.swift; sourceTree = ""; }; @@ -288,6 +290,7 @@ 61A0AD731F70D22600B99FFB /* PowerTests.swift */, 61A0AD741F70D22600B99FFB /* TrigonometricTests.swift */, CAFE5DAD22F9ED4900A34887 /* VectorTests.swift */, + CAAF4FCF2338F09700CC0AA7 /* ScalarTests.swift */, CAFE5DA422F9EC1D00A34887 /* XCTAssert+Surge.swift */, 61A0AD751F70D22600B99FFB /* XCTestCase+Surge.swift */, ); @@ -928,6 +931,7 @@ 61E930B8207002EA00694FCB /* UnsafeMemory.swift in Sources */, CAEC79C423192FE300516E10 /* Scalar.swift in Sources */, 6153945E1F762B59002A4AD2 /* Power.swift in Sources */, + CAAF4FD02338F09700CC0AA7 /* ScalarTests.swift in Sources */, 6152A42120719E9200043627 /* Statistics.swift in Sources */, CAEC79BF2319274F00516E10 /* OperatorPrecedences.swift in Sources */, 615394591F762B59002A4AD2 /* Exponential.swift in Sources */, diff --git a/Tests/SurgeTests/MatrixTests.swift b/Tests/SurgeTests/MatrixTests.swift index 150fc65..a9bed10 100644 --- a/Tests/SurgeTests/MatrixTests.swift +++ b/Tests/SurgeTests/MatrixTests.swift @@ -348,43 +348,6 @@ class MatrixTests: XCTestCase { XCTAssertEqual(actual, expected) } - func test_mul_scalar_matrix_float() { - typealias Scalar = Float - - let lhs: Scalar = 2 - - let rhs: Matrix = [ - [2, 4, 6], - [10, 12, 14], - ] - - let actual = lhs * rhs - let expected: Matrix = [ - [4, 8, 12], - [20, 24, 28], - ] - - XCTAssertEqual(actual, expected) - } - - func test_mul_scalar_matrix_double() { - typealias Scalar = Double - - let lhs: Scalar = 2 - - let rhs: Matrix = [ - [2, 4, 6], - [10, 12, 14], - ] - - let actual = lhs * rhs - let expected: Matrix = [ - [4, 8, 12], - [20, 24, 28], - ] - - XCTAssertEqual(actual, expected) - } // MARK: - Multiplication func test_mul_matrix_matrix_float() { diff --git a/Tests/SurgeTests/ScalarTests.swift b/Tests/SurgeTests/ScalarTests.swift new file mode 100644 index 0000000..5da4958 --- /dev/null +++ b/Tests/SurgeTests/ScalarTests.swift @@ -0,0 +1,97 @@ +// Copyright © 2014-2018 the Surge contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +@testable import Surge +import XCTest + +// swiftlint:disable nesting + +class ScalarTests: XCTestCase { + func makeVector() -> Vector { + return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + } + + func makeVector() -> Vector { + return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + } + + // MARK: - Multiplication + + func test_mul_scalar_vector_double() { + typealias Scalar = Double + + let vector: Vector = self.makeVector() + + let actual = 2 * vector + let expected: Vector = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] + + XCTAssertEqual(actual, expected, accuracy: 1e-8) + } + + func test_mul_scalar_vector_float() { + typealias Scalar = Float + + let vector: Vector = self.makeVector() + let scalar: Scalar = 2.0 + + let actual = scalar * vector + let expected: Vector = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] + + XCTAssertEqual(actual, expected, accuracy: 1e-8) + } + + func test_mul_scalar_matrix_float() { + typealias Scalar = Float + + let lhs: Scalar = 2 + + let rhs: Matrix = [ + [2, 4, 6], + [10, 12, 14], + ] + + let actual = lhs * rhs + let expected: Matrix = [ + [4, 8, 12], + [20, 24, 28], + ] + + XCTAssertEqual(actual, expected) + } + + func test_mul_scalar_matrix_double() { + typealias Scalar = Double + + let lhs: Scalar = 2 + + let rhs: Matrix = [ + [2, 4, 6], + [10, 12, 14], + ] + + let actual = lhs * rhs + let expected: Matrix = [ + [4, 8, 12], + [20, 24, 28], + ] + + XCTAssertEqual(actual, expected) + } +} diff --git a/Tests/SurgeTests/VectorTests.swift b/Tests/SurgeTests/VectorTests.swift index 87ead21..97009f9 100644 --- a/Tests/SurgeTests/VectorTests.swift +++ b/Tests/SurgeTests/VectorTests.swift @@ -323,35 +323,6 @@ class VectorTests: XCTestCase { XCTAssertEqual(actual, expected, accuracy: 1e-8) } - func test_mul_scalar_vector_double() { - typealias Scalar = Double - - let vector: Vector = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - - var actual: Vector = [] - measure { - actual = 2 * vector - } - let expected: Vector = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] - - XCTAssertEqual(actual, expected, accuracy: 1e-8) - } - - func test_mul_scalar_vector_float() { - typealias Scalar = Float - - let vector: Vector = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - let scalar: Scalar = 2.0 - - var actual: Vector = [] - measure { - actual = scalar * vector - } - let expected: Vector = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] - - XCTAssertEqual(actual, expected, accuracy: 1e-8) - } - // MARK: - Multiplication func test_mul_vector_scalar_double() {