Added IsPandigital string function

This commit is contained in:
2021-10-11 12:58:08 -04:00
parent 9524144f28
commit cdb118ca32
4 changed files with 143 additions and 71 deletions

View File

@@ -78,5 +78,29 @@ namespace mee{
}
return prod;
}
//Print a list
public static string PrintList<T>(List<T> list){
string listString = "[";
for(int cnt = 0;cnt < list.Count;++cnt){
listString += list[cnt];
if(cnt < list.Count - 1){
listString += ", ";
}
}
listString += "]";
return listString;
}
//Print an array
public static string PrintArray<T>(T[] array){
string arrayString = "[";
for(int cnt = 0;cnt < array.Length;++cnt){
arrayString += array[cnt];
if(cnt < array.Length - 1){
arrayString += ", ";
}
}
arrayString += "]";
return arrayString;
}
}
}

View File

@@ -1,7 +1,7 @@
//C#/CSClasses/StringAlgorithms.cs
//Matthew Ellison
// Created: 07-04-21
//Modified: 07-04-21
//Modified: 10-11-21
//This class contains functions that perform algorithms on numbers
/*
Copyright (C) 2021 Matthew Ellison
@@ -85,29 +85,31 @@ namespace mee{
return false;
}
}
//Print a list
public static string PrintList<T>(List<T> list){
string listString = "[";
for(int cnt = 0;cnt < list.Count;++cnt){
listString += list[cnt];
if(cnt < list.Count - 1){
listString += ", ";
//This function returns true if the string passed to it is a pandigital
public static bool IsPandigital(string str, char bottom, char top){
//Return false if top < bottom
if(top < bottom){
return false;
}
//Return false if the wrong number of characters are in the string
if(str.Length != (top - bottom + 1)){
return false;
}
//Make sure that all of the needed characters are in the string exactly one time
for(char cnt = bottom;cnt <= top;++cnt){
//If a single character is found more than once then the string is not pandigital
if(FindNumOccurrence(str, cnt) != 1){
return false;
}
}
listString += "]";
return listString;
//If the function has reached this part it has passed all of the falsifying tests
return true;
}
//Print an array
public static string PrintArray<T>(T[] array){
string arrayString = "[";
for(int cnt = 0;cnt < array.Length;++cnt){
arrayString += array[cnt];
if(cnt < array.Length - 1){
arrayString += ", ";
}
}
arrayString += "]";
return arrayString;
public static bool IsPandigital(string str){
return IsPandigital(str, '1', '9');
}
}
}

View File

@@ -79,5 +79,71 @@ namespace TestCSClasses{
BigInteger bigAnswer = mee.ArrayAlgorithms.GetProd(bigNumbers);
Assert.AreEqual(bigCorrectAnswer, bigAnswer, "GetProd BigInteger failed");
}
[TestMethod]
public void TestPrintList(){
//Test 1
List<int> nums = new List<int>();
string correctAnswer = "[]";
string answer = mee.ArrayAlgorithms.PrintList(nums);
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 1 failed");
//Test 2
nums = new List<int>(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]";
answer = mee.ArrayAlgorithms.PrintList(nums);
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 2 failed");
//Test 3
nums = new List<int>(){-3, -2, -1, 0, 1, 2, 3};
correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]";
answer = mee.ArrayAlgorithms.PrintList(nums);
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 3 failed");
//Test 4
List<string> strings = new List<string>(){"A", "B", "C"};
correctAnswer = "[A, B, C]";
answer = mee.ArrayAlgorithms.PrintList(strings);
Assert.AreEqual(correctAnswer, answer, "PrintList<string> 1 failed");
//Test 5
strings = new List<string>(){"abc", "def", "ghi"};
correctAnswer = "[abc, def, ghi]";
answer = mee.ArrayAlgorithms.PrintList(strings);
Assert.AreEqual(correctAnswer, answer, "PrintList<string> 2 failed");
}
[TestMethod]
public void TestPrintArray(){
//Test 1
int[] nums = new int[]{};
string correctAnswer = "[]";
string answer = mee.ArrayAlgorithms.PrintArray(nums);
Assert.AreEqual(correctAnswer, answer, "PrintArray<int> 1 failed");
//Test 2
nums = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]";
answer = mee.ArrayAlgorithms.PrintArray(nums);
Assert.AreEqual(correctAnswer, answer, "PrintArray<int> 2 failed");
//Test 3
nums = new int[]{-3, -2, -1, 0, 1, 2, 3};
correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]";
answer = mee.ArrayAlgorithms.PrintArray(nums);
Assert.AreEqual(correctAnswer, answer, "PrintArray<int> 3 failed");
//Test 4
string[] strings = new string[]{"A", "B", "C"};
correctAnswer = "[A, B, C]";
answer = mee.ArrayAlgorithms.PrintArray(strings);
Assert.AreEqual(correctAnswer, answer, "PrintArray<string> 1 failed");
//Test 5
strings = new string[]{"abc", "def", "ghi"};
correctAnswer = "[abc, def, ghi]";
answer = mee.ArrayAlgorithms.PrintArray(strings);
Assert.AreEqual(correctAnswer, answer, "PrintArray<string> 2 failed");
}
[TestMethod]
public void TestIsPandigital(){
//Test 1
//Test 2
//Test 3
}
}
}

View File

@@ -1,7 +1,7 @@
//C#/CSClasses/TestStringAlgorithms.cs
//Matthew Ellison
// Created: 07-04-21
//Modified: 07-04-21
//Modified: 10-11-21
//This class contains tests for my string algorithms library
/*
Copyright (C) 2021 Matthew Ellison
@@ -76,62 +76,42 @@ namespace TestStringAlgorithms{
Assert.AreEqual(correctAnswer, answer, "IsPalindrome 3 failed");
}
[TestMethod]
public void TestPrintList(){
public void TestIsPandigital(){
//Test 1
List<int> nums = new List<int>();
string correctAnswer = "[]";
string answer = mee.StringAlgorithms.PrintList(nums);
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 1 failed");
string num = "123456789";
bool correctAnswer = true;
bool answer = mee.StringAlgorithms.IsPandigital(num);
Assert.AreEqual(correctAnswer, answer, "IsPandigital 1 failed");
//Test 2
nums = new List<int>(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]";
answer = mee.StringAlgorithms.PrintList(nums);
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 2 failed");
num = "123";
correctAnswer = true;
answer = mee.StringAlgorithms.IsPandigital(num, '1', '3');
Assert.AreEqual(correctAnswer, answer, "IsPandigital 2 failed");
//Test 3
nums = new List<int>(){-3, -2, -1, 0, 1, 2, 3};
correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]";
answer = mee.StringAlgorithms.PrintList(nums);
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 3 failed");
num = "123";
correctAnswer = false;
answer = mee.StringAlgorithms.IsPandigital(num);
Assert.AreEqual(correctAnswer, answer, "IsPandigital 3 failed");
//Test 4
List<string> strings = new List<string>(){"A", "B", "C"};
correctAnswer = "[A, B, C]";
answer = mee.StringAlgorithms.PrintList(strings);
Assert.AreEqual(correctAnswer, answer, "PrintList<string> 1 failed");
//Test 5
strings = new List<string>(){"abc", "def", "ghi"};
correctAnswer = "[abc, def, ghi]";
answer = mee.StringAlgorithms.PrintList(strings);
Assert.AreEqual(correctAnswer, answer, "PrintList<string> 2 failed");
}
[TestMethod]
public void TestPrintArray(){
//Test 1
int[] nums = new int[]{};
string correctAnswer = "[]";
string answer = mee.StringAlgorithms.PrintArray(nums);
Assert.AreEqual(correctAnswer, answer, "PrintArray<int> 1 failed");
//Test 2
nums = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]";
answer = mee.StringAlgorithms.PrintArray(nums);
Assert.AreEqual(correctAnswer, answer, "PrintArray<int> 2 failed");
//Test 3
nums = new int[]{-3, -2, -1, 0, 1, 2, 3};
correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]";
answer = mee.StringAlgorithms.PrintArray(nums);
Assert.AreEqual(correctAnswer, answer, "PrintArray<int> 3 failed");
num = "123";
correctAnswer = false;
answer = mee.StringAlgorithms.IsPandigital(num, '3', '1');
Assert.AreEqual(correctAnswer, answer, "IsPandigital 4 failed");
//Test 4
string[] strings = new string[]{"A", "B", "C"};
correctAnswer = "[A, B, C]";
answer = mee.StringAlgorithms.PrintArray(strings);
Assert.AreEqual(correctAnswer, answer, "PrintArray<string> 1 failed");
//Test 5
strings = new string[]{"abc", "def", "ghi"};
correctAnswer = "[abc, def, ghi]";
answer = mee.StringAlgorithms.PrintArray(strings);
Assert.AreEqual(correctAnswer, answer, "PrintArray<string> 2 failed");
num = "1";
correctAnswer = true;
answer = mee.StringAlgorithms.IsPandigital(num, '1', '1');
Assert.AreEqual(correctAnswer, answer, "IsPandigitial 5 failed");
//Test 6
num = "112";
correctAnswer = false;
answer = mee.StringAlgorithms.IsPandigital(num, '1', '3');
Assert.AreEqual(correctAnswer, answer, "IsPandigitial 6 failed");
}
}
}