mirror of
https://bitbucket.org/Mattrixwv/csclasses.git
synced 2025-12-06 18:23:58 -05:00
Added IsPandigital string function
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user