Add AOC template and supporting files
parent
2f93de662d
commit
66d47e2a49
@ -0,0 +1,4 @@
|
||||
protocol AOCDay {
|
||||
var tests: (() -> ()) { get set }
|
||||
var final: (() -> ()) { get set }
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Advent of Code 2018 "Day 1: Chronal Calibration"
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class Chronal {
|
||||
}
|
||||
|
||||
class Day01: AOCDay {
|
||||
lazy var tests: (() -> ()) = day01Tests
|
||||
lazy var final: (() -> ()) = day01Final
|
||||
|
||||
func day01Tests() {
|
||||
}
|
||||
|
||||
func day01Final() {
|
||||
let retVal = "None"
|
||||
print("Answer to part 1 is: \(retVal)")
|
||||
print("Answer to part 2 is: \(retVal)")
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Advent of Code 2018 "Day 1: Chronal Calibration"
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class Chronal {
|
||||
}
|
||||
|
||||
class Day01: AOCDay {
|
||||
lazy var tests: (() -> ()) = day01Tests
|
||||
lazy var final: (() -> ()) = day01Final
|
||||
|
||||
func day01Tests() {
|
||||
}
|
||||
|
||||
func day01Final() {
|
||||
let retVal = "None"
|
||||
print("Answer to part 1 is: \(retVal)")
|
||||
print("Answer to part 2 is: \(retVal)")
|
||||
}
|
||||
}
|
||||
@ -1 +1,36 @@
|
||||
print("Hello, world!")
|
||||
//
|
||||
// Advent of Code 2018
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
let showTests = true
|
||||
let onlyOneDay = 0
|
||||
var allTests: [(() -> ())] = []
|
||||
var allFinal: [(() -> ())] = []
|
||||
|
||||
print("Advent of Code 2018")
|
||||
|
||||
// Compile list of Tests
|
||||
allTests.append(Day01().tests)
|
||||
|
||||
// Compile list of Answers
|
||||
allFinal.append(Day01().final)
|
||||
|
||||
if onlyOneDay > 0 {
|
||||
print("\nDay \(onlyOneDay)")
|
||||
allTests[onlyOneDay-1]()
|
||||
allFinal[onlyOneDay-1]()
|
||||
} else {
|
||||
if showTests {
|
||||
for day in 1...allTests.count {
|
||||
print("\nDay \(day)")
|
||||
allTests[day-1]()
|
||||
}
|
||||
}
|
||||
|
||||
for day in 1...allFinal.count {
|
||||
print("\nDay \(day)")
|
||||
allFinal[day-1]()
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
//
|
||||
// Tools used for mundane stuff
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// Global function
|
||||
func XCTAssertEqual(test: String, withExpression isTrue: Bool) {
|
||||
if (isTrue) {
|
||||
print("Pass ", terminator: " : ")
|
||||
} else {
|
||||
print("* F A I L *", terminator: " : ")
|
||||
}
|
||||
print(test)
|
||||
}
|
||||
|
||||
|
||||
struct Tools {
|
||||
static func readFile(fromPath path: String) -> String {
|
||||
var retVal = ""
|
||||
do {
|
||||
let data = try NSString(contentsOfFile: path, encoding: String.Encoding.ascii.rawValue)
|
||||
retVal = data as String
|
||||
}
|
||||
catch let error as NSError {
|
||||
print("Tools readFile(fromPath: \"\(path)\") error: \(error)")
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue