Hi Nicolas Anderson,
Thank you for reaching out to Microsoft Q & A forum.
1.Open the TrieTests.cs File
Open the TrieTests.cs file located under the TrieDictionaryTest directory in your project.
2.Insert a New Test Method to Test Insertion
In the TrieTest class, enter the following code:
// Test that a word is inserted in the trie
[TestMethod]
Press Enter and wait for Copilot to suggest the code for the test method. It should generate something like:
public void TestInsert()
{
Trie trie = new Trie();
trie.Insert("apple");
Assert.IsTrue(trie.Contains("apple"));
}
3.Insert a New Test Method to Test Deletion
On a new line, enter the following code:
// Test that a word is deleted from the trie
[TestMethod]
Press Enter and wait for Copilot to suggest the code for the test method. It should generate something like:
public void TestDelete()
{
Trie trie = new Trie();
trie.Insert("apple");
trie.Delete("apple");
Assert.IsFalse(trie.Contains("apple"));
}
Similarly write all the test cases
The finalized TrieTests.cs file appears as follows:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
namespace TrieDictionaryTest
{
[TestClass]
public class TrieTests
{
[TestMethod]
// Test that a word is inserted in the trie
public void TestInsert()
{
Trie trie = new Trie();
trie.Insert("apple");
Assert.IsTrue(trie.Contains("apple"));
}
[TestMethod]
// Test that a word is deleted from the trie
public void TestDelete()
{
Trie trie = new Trie();
trie.Insert("apple");
trie.Delete("apple");
Assert.IsFalse(trie.Contains("apple"));
}
[TestMethod]
// Test that a word is not inserted twice in the trie
public void TestInsertTwice()
{
Trie trie = new Trie();
trie.Insert("apple");
trie.Insert("apple");
Assert.AreEqual(1, trie.CountOccurrences("apple"));
}
[TestMethod]
// Test that a word is deleted from the trie if it exists
public void TestDeleteIfExists()
{
Trie trie = new Trie();
trie.Insert("apple");
Assert.IsTrue(trie.Delete("apple"));
}
[TestMethod]
// Test that a word is not deleted from the trie if it is not present
public void TestDeleteIfNotPresent()
{
Trie trie = new Trie();
Assert.IsFalse(trie.Delete("apple"));
}
[TestMethod]
// Test that a word is deleted from the trie if it is a prefix of another word
public void TestDeletePrefix()
{
Trie trie = new Trie();
trie.Insert("apple");
trie.Insert("app");
Assert.IsTrue(trie.Delete("app"));
Assert.IsFalse(trie.Contains("app"));
Assert.IsTrue(trie.Contains("apple"));
}
[TestMethod]
// Test AutoSuggest for the prefix "cat" not present in the
// trie containing "catastrophe", "catatonic", and "caterpillar"
public void TestAutoSuggest()
{
Trie trie = new Trie();
trie.Insert("catastrophe");
trie.Insert("catatonic");
trie.Insert("caterpillar");
List<string> suggestions = trie.AutoSuggest("cat");
Assert.AreEqual(3, suggestions.Count);
Assert.AreEqual("catastrophe", suggestions[0]);
Assert.AreEqual("catatonic", suggestions[1]);
Assert.AreEqual("caterpillar", suggestions[2]);
}
[TestMethod]
// Test GetSpellingSuggestions for a word not present in the trie
public void TestGetSpellingSuggestions()
{
Trie trie = new Trie();
trie.Insert("cat");
trie.Insert("caterpillar");
trie.Insert("catastrophe");
List<string> suggestions = trie.GetSpellingSuggestions("caterpiller");
Assert.AreEqual(1, suggestions.Count);
Assert.AreEqual("caterpillar", suggestions[0]);
}
}
}
4.Verify the Tests
In the file explorer, right-click the TrieTest.cs file and click Open in Integrated Terminal.
Enter “dotnet test” to run the tests.
If your tests produce different results, review your code to find the error and make updates. Run the code again to see if you've fixed the problem. Continue updating and running your code until your code produces the expected results.
Please feel free to contact us if you have any additional questions.
If you have found the answer provided to be helpful, please click on the "Accept answer/Upvote" button so that it is useful for other members in the Microsoft Q&A community.
Thank you.