gpt4 book ai didi

swift - 算法方法测试

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:52 24 4
gpt4 key购买 nike

我是单元测试的新手,想知道如何检查以确保我的算法能够正确返回传递给我的函数的任何给定字符串中最常见的单词?

var test = "Let's figure. out what the most comm$on wor!!!!d is in the sentence."

func checkForRandomChracters(string: String) -> String {
let charactersToRemove = Array(".:?!,@#$%^*,")
let arrayOfChars = Array(string)
let filteredString = arrayOfChars.reduce("") {
let str = String($1)
return $0 + (charactersToRemove.contains($1) ? "" : str)
}
return filteredString
}

func mostFrequentWords(string: String) -> String {
let lowerString = string.lowercased()
let cleanedString = checkForRandomChracters(string: lowerString)
let array = cleanedString.components(separatedBy: " ")

var itemInDictionary: [String: Int] = [:]

for item in array {
itemInDictionary[item] = (itemInDictionary[item] ?? 0) + 1
}

var mostCommonNameInArray = ""

for key in itemInDictionary.keys {
if mostCommonNameInArray == "" {
mostCommonNameInArray = key
} else {
let count = itemInDictionary[key]!
if count > itemInDictionary[mostCommonNameInArray]! {
mostCommonNameInArray = key
}
}
}

return mostCommonNameInArray
}


mostFrequentWords(string: test) // returns 'the'

最佳答案

单元测试并不是要确保所有字符串的答案都是正确的。为此,您需要一个正式的证明,它要复杂得多并且与数学和这类东西相关(在非常高层次的描述中)。

单元测试是关于开发测试以保证您的方法适用于您为其开发测试的案例。因此,您需要开发不同的案例来测试不同的行为,例如:

  • 当你使用一个你已经知道结果的字符串时,算法的结果是什么?它会是正确的吗?
  • 当你发送一个空字符串时,算法结果是什么?
  • 当出现不止一个最频繁的词时,算法结果是什么?

请记住始终测试极端情况(例如空的或有多个最常用的词),并在知道结果时为情况开发一些测试以保证。

哦,还有,当您想更改算法但又想测试它的行为是否没有改变时,单元测试非常有用。

在 Swift 中,您可以创建一个单元测试类,然后使用 XCTest 开发不同的测试方法。您可以按照一个很棒的教程来理解它 here .

希望我已经回答了您的问题。祝你好运。

关于swift - 算法方法测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48387689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com