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;
|
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
|
//C#/CSClasses/StringAlgorithms.cs
|
||||||
//Matthew Ellison
|
//Matthew Ellison
|
||||||
// Created: 07-04-21
|
// Created: 07-04-21
|
||||||
//Modified: 07-04-21
|
//Modified: 10-11-21
|
||||||
//This class contains functions that perform algorithms on numbers
|
//This class contains functions that perform algorithms on numbers
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2021 Matthew Ellison
|
Copyright (C) 2021 Matthew Ellison
|
||||||
@@ -85,29 +85,31 @@ namespace mee{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Print a list
|
//This function returns true if the string passed to it is a pandigital
|
||||||
public static string PrintList<T>(List<T> list){
|
public static bool IsPandigital(string str, char bottom, char top){
|
||||||
string listString = "[";
|
//Return false if top < bottom
|
||||||
for(int cnt = 0;cnt < list.Count;++cnt){
|
if(top < bottom){
|
||||||
listString += list[cnt];
|
return false;
|
||||||
if(cnt < list.Count - 1){
|
}
|
||||||
listString += ", ";
|
|
||||||
|
//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 bool IsPandigital(string str){
|
||||||
public static string PrintArray<T>(T[] array){
|
return IsPandigital(str, '1', '9');
|
||||||
string arrayString = "[";
|
|
||||||
for(int cnt = 0;cnt < array.Length;++cnt){
|
|
||||||
arrayString += array[cnt];
|
|
||||||
if(cnt < array.Length - 1){
|
|
||||||
arrayString += ", ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
arrayString += "]";
|
|
||||||
return arrayString;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,5 +79,71 @@ namespace TestCSClasses{
|
|||||||
BigInteger bigAnswer = mee.ArrayAlgorithms.GetProd(bigNumbers);
|
BigInteger bigAnswer = mee.ArrayAlgorithms.GetProd(bigNumbers);
|
||||||
Assert.AreEqual(bigCorrectAnswer, bigAnswer, "GetProd BigInteger failed");
|
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
|
//C#/CSClasses/TestStringAlgorithms.cs
|
||||||
//Matthew Ellison
|
//Matthew Ellison
|
||||||
// Created: 07-04-21
|
// Created: 07-04-21
|
||||||
//Modified: 07-04-21
|
//Modified: 10-11-21
|
||||||
//This class contains tests for my string algorithms library
|
//This class contains tests for my string algorithms library
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2021 Matthew Ellison
|
Copyright (C) 2021 Matthew Ellison
|
||||||
@@ -76,62 +76,42 @@ namespace TestStringAlgorithms{
|
|||||||
Assert.AreEqual(correctAnswer, answer, "IsPalindrome 3 failed");
|
Assert.AreEqual(correctAnswer, answer, "IsPalindrome 3 failed");
|
||||||
}
|
}
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestPrintList(){
|
public void TestIsPandigital(){
|
||||||
//Test 1
|
//Test 1
|
||||||
List<int> nums = new List<int>();
|
string num = "123456789";
|
||||||
string correctAnswer = "[]";
|
bool correctAnswer = true;
|
||||||
string answer = mee.StringAlgorithms.PrintList(nums);
|
bool answer = mee.StringAlgorithms.IsPandigital(num);
|
||||||
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 1 failed");
|
Assert.AreEqual(correctAnswer, answer, "IsPandigital 1 failed");
|
||||||
|
|
||||||
//Test 2
|
//Test 2
|
||||||
nums = new List<int>(){1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
num = "123";
|
||||||
correctAnswer = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]";
|
correctAnswer = true;
|
||||||
answer = mee.StringAlgorithms.PrintList(nums);
|
answer = mee.StringAlgorithms.IsPandigital(num, '1', '3');
|
||||||
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 2 failed");
|
Assert.AreEqual(correctAnswer, answer, "IsPandigital 2 failed");
|
||||||
|
|
||||||
//Test 3
|
//Test 3
|
||||||
nums = new List<int>(){-3, -2, -1, 0, 1, 2, 3};
|
num = "123";
|
||||||
correctAnswer = "[-3, -2, -1, 0, 1, 2, 3]";
|
correctAnswer = false;
|
||||||
answer = mee.StringAlgorithms.PrintList(nums);
|
answer = mee.StringAlgorithms.IsPandigital(num);
|
||||||
Assert.AreEqual(correctAnswer, answer, "PrintList<int> 3 failed");
|
Assert.AreEqual(correctAnswer, answer, "IsPandigital 3 failed");
|
||||||
|
|
||||||
//Test 4
|
//Test 4
|
||||||
List<string> strings = new List<string>(){"A", "B", "C"};
|
num = "123";
|
||||||
correctAnswer = "[A, B, C]";
|
correctAnswer = false;
|
||||||
answer = mee.StringAlgorithms.PrintList(strings);
|
answer = mee.StringAlgorithms.IsPandigital(num, '3', '1');
|
||||||
Assert.AreEqual(correctAnswer, answer, "PrintList<string> 1 failed");
|
Assert.AreEqual(correctAnswer, answer, "IsPandigital 4 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");
|
|
||||||
|
|
||||||
//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
|
//Test 5
|
||||||
strings = new string[]{"abc", "def", "ghi"};
|
num = "1";
|
||||||
correctAnswer = "[abc, def, ghi]";
|
correctAnswer = true;
|
||||||
answer = mee.StringAlgorithms.PrintArray(strings);
|
answer = mee.StringAlgorithms.IsPandigital(num, '1', '1');
|
||||||
Assert.AreEqual(correctAnswer, answer, "PrintArray<string> 2 failed");
|
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