-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSolutionTests.swift
63 lines (51 loc) · 1.58 KB
/
SolutionTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//
// SolutionTests.swift
// LeetCodeTests
//
// Created by Nihad on 11/20/21.
//
import XCTest
@testable import LeetCode
class SolutionTests: XCTestCase {
var sut: Solution!
override func setUp() {
super.setUp()
sut = Solution()
}
override func tearDown() {
sut = nil
super.tearDown()
}
func testSolution_setZeroes() {
// given
var matrix1 = [[1,1,1],[1,0,1],[1,1,1]]
var matrix2 = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
var matrix3 = [[1,0,3]]
var matrix4 = [[-4,-2147483648,6,-7,0],[-8,6,-8,-6,0],[2147483647,2,-9,-6,-10]]
// when
sut.setZeroes(&matrix1)
sut.setZeroes(&matrix2)
sut.setZeroes(&matrix3)
sut.setZeroes(&matrix4)
// then
let expected1 = [[1,0,1],[0,0,0],[1,0,1]]
let expected2 = [[0,0,0,0],[0,4,5,0],[0,3,1,0]]
let expected3 = [[0,0,0]]
let expected4 = [[0,0,0,0,0],[0,0,0,0,0],[2147483647,2,-9,-6,0]]
XCTAssertTrue(compareMatrices(matrix1, expected1))
XCTAssertTrue(compareMatrices(matrix2, expected2))
XCTAssertTrue(compareMatrices(matrix3, expected3))
XCTAssertTrue(compareMatrices(matrix4, expected4))
}
func compareMatrices(_ m1: [[Int]], _ m2: [[Int]]) -> Bool {
if (m1.count != m2.count) || (m1.isEmpty && !m2.isEmpty) || (!m1.isEmpty && m2.isEmpty) {
return false
}
for i in 0..<m1.count {
for j in 0..<m1[0].count {
if m1[i][j] != m2[i][j] { return false }
}
}
return true
}
}