Skip to content

Commit

Permalink
Merge pull request #129 from robtimp/issue-127
Browse files Browse the repository at this point in the history
Remove default multiples (issue #127)
  • Loading branch information
masters3d committed Mar 31, 2016
2 parents f81ab00 + b98691d commit f62fdbf
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 37 deletions.
42 changes: 19 additions & 23 deletions exercises/sum-of-multiples/SumOfMultiplesExample.swift
Original file line number Diff line number Diff line change
@@ -1,32 +1,28 @@
// Foundation not needed



struct SumOfMultiples {

static func toLimit (limit:Int, inMultiples:[Int] = [] ) -> Int{
var multiples = inMultiples
let arrayLimit = Array(1..<limit)

if multiples.count == 0 {
multiples = [3, 5]
} else if multiples[0] == 0{
multiples = Array(inMultiples.dropFirst())
}

var itemToReturn = 0

for each in arrayLimit{
var lastAdded = 0
for multiple in multiples {
if each % multiple == 0 {
if lastAdded != each {
itemToReturn += each
lastAdded = each
static func toLimit(limit: Int, inMultiples: [Int]) -> Int {
var multiples = Set(inMultiples)

if let indexOfZero = multiples.indexOf(0) {
multiples.removeAtIndex(indexOfZero)
}

var itemToReturn = 0

for each in 1..<limit {
var lastAdded = 0
for multiple in multiples {
if each % multiple == 0 {
if lastAdded != each {
itemToReturn += each
lastAdded = each
}
}
}
}

return itemToReturn
}
return itemToReturn
}
}
25 changes: 11 additions & 14 deletions exercises/sum-of-multiples/SumOfMultiplesTest.swift
Original file line number Diff line number Diff line change
@@ -1,52 +1,49 @@
import XCTest




class SumOfMultiplesTest:XCTestCase {

func testSumTo1() {
XCTAssertEqual(0, SumOfMultiples.toLimit(1))
XCTAssertEqual(0, SumOfMultiples.toLimit(1, inMultiples: [3, 5]))
}

func testSumTo3() {
XCTAssertEqual(3, SumOfMultiples.toLimit(4))
XCTAssertEqual(3, SumOfMultiples.toLimit(4, inMultiples: [3, 5]))
}

func testSumTo10() {
XCTAssertEqual(23, SumOfMultiples.toLimit(10))
XCTAssertEqual(23, SumOfMultiples.toLimit(10, inMultiples: [3, 5]))
}

func testSumTo100() {
XCTAssertEqual(2318, SumOfMultiples.toLimit(100))
XCTAssertEqual(2318, SumOfMultiples.toLimit(100, inMultiples: [3, 5]))
}

func testSumTo1000() {
XCTAssertEqual(233168, SumOfMultiples.toLimit(1000))
XCTAssertEqual(233168, SumOfMultiples.toLimit(1000, inMultiples: [3, 5]))
}

func testConfigurable_7_13_17_to_20() {
XCTAssertEqual(51, SumOfMultiples.toLimit(20, inMultiples: [7, 13, 17]))
XCTAssertEqual(51, SumOfMultiples.toLimit(20, inMultiples: [7, 13, 17]))
}

func testConfigurable_4_6_to_15() {
XCTAssertEqual(30, SumOfMultiples.toLimit(15, inMultiples: [4, 6]))
XCTAssertEqual(30, SumOfMultiples.toLimit(15, inMultiples: [4, 6]))
}

func testConfigurable_5_6_8_to_150() {
XCTAssertEqual(4419, SumOfMultiples.toLimit(150, inMultiples: [5, 6, 8]))
XCTAssertEqual(4419, SumOfMultiples.toLimit(150, inMultiples: [5, 6, 8]))
}

func testConfigurable_43_47_to_10000() {
XCTAssertEqual(2203160, SumOfMultiples.toLimit(10000, inMultiples: [43, 47]))
XCTAssertEqual(2203160, SumOfMultiples.toLimit(10000, inMultiples: [43, 47]))
}

func testConfigurable_0_to_10() {
XCTAssertEqual(0, SumOfMultiples.toLimit(10, inMultiples: [0]))
XCTAssertEqual(0, SumOfMultiples.toLimit(10, inMultiples: [0]))
}

func testConfigurable_0_1_to_10() {
XCTAssertEqual(45, SumOfMultiples.toLimit(10, inMultiples: [0, 1]))
XCTAssertEqual(45, SumOfMultiples.toLimit(10, inMultiples: [0, 1]))
}

}

0 comments on commit f62fdbf

Please sign in to comment.