public void TestCountValences() { IElement testSubject = new Hydrogen(); var testResult = testSubject.CountValences; Console.WriteLine($"{testSubject.Name} {testResult}"); Assert.AreEqual(1, testResult); testSubject = new Helium(); testResult = testSubject.CountValences; Console.WriteLine($"{testSubject.Name} {testResult}"); Assert.AreEqual(0, testResult); testSubject = new Oxygen(); testResult = testSubject.CountValences; Console.WriteLine($"{testSubject.Name} {testResult}"); Assert.AreEqual(2, testResult); testSubject = new Nitrogen(); testResult = testSubject.CountValences; Console.WriteLine($"{testSubject.Name} {testResult}"); Assert.AreEqual(3, testResult); testSubject = new Carbon(); testResult = testSubject.CountValences; Console.WriteLine($"{testSubject.Name} {testResult}"); Assert.AreEqual(4, testResult); testSubject = new Silicon(); testResult = testSubject.CountValences; Console.WriteLine($"{testSubject.Name} {testResult}"); }
public void TestPrintElectronShellCfg_All() { IElement testSubject;; testSubject = new Hydrogen(); Console.WriteLine($"Hydrogen {testSubject.PrintElectronShellCfg()}"); testSubject = new Helium(); Console.WriteLine($"Helium {testSubject.PrintElectronShellCfg()}"); testSubject = new Lithium(); Console.WriteLine($"Lithium {testSubject.PrintElectronShellCfg()}"); testSubject = new Beryllium(); Console.WriteLine($"Beryllium {testSubject.PrintElectronShellCfg()}"); testSubject = new Boron(); Console.WriteLine($"Boron {testSubject.PrintElectronShellCfg()}"); testSubject = new Carbon(); Console.WriteLine($"Carbon {testSubject.PrintElectronShellCfg()}"); testSubject = new Nitrogen(); Console.WriteLine($"Nitrogen {testSubject.PrintElectronShellCfg()}"); testSubject = new Oxygen(); Console.WriteLine($"Oxygen {testSubject.PrintElectronShellCfg()}"); testSubject = new Fluorine(); Console.WriteLine($"Fluorine {testSubject.PrintElectronShellCfg()}"); testSubject = new Neon(); Console.WriteLine($"Neon {testSubject.PrintElectronShellCfg()}"); testSubject = new Sodium(); Console.WriteLine($"Sodium {testSubject.PrintElectronShellCfg()}"); testSubject = new Magnesium(); Console.WriteLine($"Magnesium {testSubject.PrintElectronShellCfg()}"); testSubject = new Aluminum(); Console.WriteLine($"Aluminum {testSubject.PrintElectronShellCfg()}"); testSubject = new Silicon(); Console.WriteLine($"Silicon {testSubject.PrintElectronShellCfg()}"); testSubject = new Phosphorus(); Console.WriteLine($"Phosphorus {testSubject.PrintElectronShellCfg()}"); testSubject = new Sulfur(); Console.WriteLine($"Sulfur {testSubject.PrintElectronShellCfg()}"); testSubject = new Chlorine(); Console.WriteLine($"Chlorine {testSubject.PrintElectronShellCfg()}"); testSubject = new Argon(); Console.WriteLine($"Argon {testSubject.PrintElectronShellCfg()}"); testSubject = new Potassium(); Console.WriteLine($"Potassium {testSubject.PrintElectronShellCfg()}"); testSubject = new Calcium(); Console.WriteLine($"Calcium {testSubject.PrintElectronShellCfg()}"); testSubject = new Scandium(); Console.WriteLine($"Scandium {testSubject.PrintElectronShellCfg()}"); testSubject = new Titanium(); Console.WriteLine($"Titanium {testSubject.PrintElectronShellCfg()}"); testSubject = new Vanadium(); Console.WriteLine($"Vanadium {testSubject.PrintElectronShellCfg()}"); testSubject = new Chromium(); Console.WriteLine($"Chromium {testSubject.PrintElectronShellCfg()}"); testSubject = new Manganese(); Console.WriteLine($"Manganese {testSubject.PrintElectronShellCfg()}"); testSubject = new Iron(); Console.WriteLine($"Iron {testSubject.PrintElectronShellCfg()}"); testSubject = new Cobalt(); Console.WriteLine($"Cobalt {testSubject.PrintElectronShellCfg()}"); testSubject = new Nickel(); Console.WriteLine($"Nickel {testSubject.PrintElectronShellCfg()}"); testSubject = new Copper(); Console.WriteLine($"Copper {testSubject.PrintElectronShellCfg()}"); testSubject = new Zinc(); Console.WriteLine($"Zinc {testSubject.PrintElectronShellCfg()}"); testSubject = new Gallium(); Console.WriteLine($"Gallium {testSubject.PrintElectronShellCfg()}"); testSubject = new Germanium(); Console.WriteLine($"Germanium {testSubject.PrintElectronShellCfg()}"); testSubject = new Arsenic(); Console.WriteLine($"Arsenic {testSubject.PrintElectronShellCfg()}"); testSubject = new Selenium(); Console.WriteLine($"Selenium {testSubject.PrintElectronShellCfg()}"); testSubject = new Bromine(); Console.WriteLine($"Bromine {testSubject.PrintElectronShellCfg()}"); testSubject = new Krypton(); Console.WriteLine($"Krypton {testSubject.PrintElectronShellCfg()}"); testSubject = new Rubidium(); Console.WriteLine($"Rubidium {testSubject.PrintElectronShellCfg()}"); testSubject = new Strontium(); Console.WriteLine($"Strontium {testSubject.PrintElectronShellCfg()}"); testSubject = new Yttrium(); Console.WriteLine($"Yttrium {testSubject.PrintElectronShellCfg()}"); testSubject = new Zirconium(); Console.WriteLine($"Zirconium {testSubject.PrintElectronShellCfg()}"); testSubject = new Niobium(); Console.WriteLine($"Niobium {testSubject.PrintElectronShellCfg()}"); testSubject = new Molybdenum(); Console.WriteLine($"Molybdenum {testSubject.PrintElectronShellCfg()}"); testSubject = new Technetium(); Console.WriteLine($"Technetium {testSubject.PrintElectronShellCfg()}"); testSubject = new Ruthenium(); Console.WriteLine($"Ruthenium {testSubject.PrintElectronShellCfg()}"); testSubject = new Rhodium(); Console.WriteLine($"Rhodium {testSubject.PrintElectronShellCfg()}"); testSubject = new Palladium(); Console.WriteLine($"Palladium {testSubject.PrintElectronShellCfg()}"); testSubject = new Silver(); Console.WriteLine($"Silver {testSubject.PrintElectronShellCfg()}"); testSubject = new Cadmium(); Console.WriteLine($"Cadmium {testSubject.PrintElectronShellCfg()}"); testSubject = new Indium(); Console.WriteLine($"Indium {testSubject.PrintElectronShellCfg()}"); testSubject = new Tin(); Console.WriteLine($"Tin {testSubject.PrintElectronShellCfg()}"); testSubject = new Antimony(); Console.WriteLine($"Antimony {testSubject.PrintElectronShellCfg()}"); testSubject = new Tellurium(); Console.WriteLine($"Tellurium {testSubject.PrintElectronShellCfg()}"); testSubject = new Iodine(); Console.WriteLine($"Iodine {testSubject.PrintElectronShellCfg()}"); testSubject = new Xenon(); Console.WriteLine($"Xenon {testSubject.PrintElectronShellCfg()}"); testSubject = new Cesium(); Console.WriteLine($"Cesium {testSubject.PrintElectronShellCfg()}"); testSubject = new Barium(); Console.WriteLine($"Barium {testSubject.PrintElectronShellCfg()}"); }
// Main method is the entry point for the program. All C# programs need // a Main method static void Main(string[] args) { // this is a comment /* Multi-line * Comment */ // explicit data type declaration. You can declare and assign values // in the same row or different rows. string name; // Writes the string argument in console and adds a new line Console.WriteLine("What is your name?"); // Reads input from console as a string // name = Console.ReadLine(); Console.WriteLine("What is your age?"); // Convert.ToXXX converts string data type to other data types // int age = Convert.ToInt32(Console.ReadLine()); // formatted output. 0, 1, 2 etc are positional arguments // Console.WriteLine("My name is {0} and I'm {1} years old.", name, age); /* * Variables declared using the var keyword are called implicitly typed * variables. Implicitly typed variables must be initialized with a * value. */ var num = 20; Console.WriteLine("variable declared with implicit datatype statement var: {0}", num); /* * Constants store a value that cannot be changed from their initial * assignment. To declare a constant, use the const modifier. Constants * must be initialized with a value when declared. */ const double PI = 3.14; Console.WriteLine("The value of pi is a constant and it is: {0}", PI); /* Number operations */ num += 20; Console.WriteLine(num); num -= 20; Console.WriteLine(num); num++; Console.WriteLine(num); num--; Console.WriteLine(num); /* * Prefix increments the value, and then proceeds with the expression. * Postfix evaluates the expression and then performs the incrementing. */ int y = num++; Console.WriteLine("num = {0}, y = {1}", num, y); y = ++num; Console.WriteLine("num = {0}, y = {1}", num, y); // if else if (y > 20) { Console.WriteLine("Y is greather than 20."); } else if (y == 20) { Console.WriteLine("Y is equal to 20."); } else { Console.WriteLine("Y is less than 20."); } // switch statement - The switch statement provides a more elegant // way to test a variable for equality against a list of values. // Each value is called a case, and the variable being switched on // is checked for each switch case. switch statement can include any // number of cases. However, no two case labels may contain the same // constant value. In a switch statement, the optional default case // is executed when none of the previous cases match. int vara = 20; switch (vara) { case 1: Console.WriteLine("One"); break; case 5: Console.WriteLine("Five"); break; case 10: Console.WriteLine("Ten"); break; case 20: Console.WriteLine("Twenty"); break; default: Console.WriteLine("Doesn't match any number."); break; } // while statement while (vara > 0) { Console.WriteLine("Vara value is: {0}", vara); vara -= 5; } // for statement for (int i = 0; i < 5; i++) { Console.WriteLine("For Loop Executed {0} Times.", i); } // do-while - executes at least once before checking the while // condition int j = 0; do { Console.WriteLine("In Do-While Loop: {0}", j); j++; } while (j < 5); // ?: operator - shorthand if-else statement (expr1) ? (expr2) : // (expr3) => if expr1 is true, evaluate expr2 else expr3 Console.WriteLine((j == 5) ? "J is 5" : "J is not 5"); // calculator // while (true) { // Console.Write("Enter the first number: "); // string x = Console.ReadLine(); // Console.Write("Enter the second number: "); // string z = Console.ReadLine(); // if (x == "exit" || z == "exit") { // break; // } // Console.WriteLine("The sum of {0} and {1} is: {2}", x, z, Convert.ToInt32(x) + Convert.ToInt32(z)); // } // call a method int result = Sqrt(20); Console.WriteLine("Sqrt of 20 is: {0}", result); // call void method with no arguments sayHi(); // call a method with optional parameter Console.WriteLine("Power of 3: {0}", Pow(3)); Console.WriteLine("Power of 3 ^ 3: {0}", Pow(3, 3)); // call a method with named arguments Console.WriteLine("Area of rectangle of height 10 and width 20 is: {0}", rectArea(w: 10, h: 20)); // pass by reference int pbr = 10; Console.WriteLine("Value of pbr before pass by reference is: {0}", pbr); PassByRef(ref pbr); Console.WriteLine("Value of pbr after pass by reference is: {0}", pbr); // pass by output int a = 1, b; GetValues(out a, out b); Console.WriteLine("A is {0} and B is {1}", a, b); // Method Overloading Print(20); Print(20.45); Print("Method overload - Value of a is: ", 31); // Call a method from another class Console.WriteLine("5! = {0}", Factorial.Fact(5)); // Draw Pyramid DrawPyramid(10); // Instantiate an object of Person class Person p1 = new Person(); p1.age = 20; p1.name = "Venkatesh"; p1.SetGender("Male"); p1.SayHi(); // object instantiated from a class with a constructor BankAccount v1 = new BankAccount("Venkatesh"); Console.WriteLine("My balance is: " + v1.GetBalance()); v1.Deposit(278.87); v1.Deposit(129.76); v1.Deposit(99.12); v1.Withdraw(39.87); v1.Withdraw(190.86); Console.WriteLine("{0}'s balance is: {1} ", v1.GetName(), v1.GetBalance()); Console.WriteLine("Number of bank accounts: " + BankAccount.NumOfAccounts); Console.WriteLine(); BankAccount v2 = new BankAccount(); Console.WriteLine("My balance is: " + v2.GetBalance()); v2.Ssn = "123-456-789"; Console.WriteLine("v2 ssn number is: " + v2.Ssn); v2.Age = 20; Console.WriteLine("v2 age is: " + v2.Age); Console.WriteLine("{0}'s balance is: {1} ", v2.GetName(), v2.GetBalance()); Console.WriteLine("Number of bank accounts: " + BankAccount.NumOfAccounts); Console.WriteLine(); // Array declaration and initialization int[] myArray = new int[3] { 10, 20, 30 }; myArray[1] = 20; myArray[0] = 10; string[] myarray0 = new string[] { "True", "False" }; string[] myArray1 = { "True", "False" }; // foreach foreach (var val in myArray) { Console.WriteLine(val); } // multi-dimension array int[,] multiArray = new int[3, 4]; multiArray[0, 0] = 20; multiArray[0, 1] = 10; int[,] multiArray1 = { { 10, 20 }, { 30, 40 }, { 50, 60 } }; for (int k = 0; k < 3; k++) { for (int l = 0; l < 2; l++) { Console.Write(multiArray1[k, l] + " "); } Console.WriteLine(); } // jagged array - array of arrays int[][] jaggedArray = new int[][] { new int[] { 1, 2, 3, 4, 5 }, new int[] { 6, 7, 8, 9 }, new int[] { 10, 11, 12 } }; Console.WriteLine("Jagged array[2, 2]: " + jaggedArray[2][2]); // Length and Rank properties of an array Console.WriteLine("Jagged Array Length: " + jaggedArray.Length); Console.WriteLine("Jagged Array Rank: " + jaggedArray.Rank); // call StringDemo method to demonostrate string properties and methods Strings.StringDemo(); // static classes with static members Console.WriteLine("Value of PI is: " + Math.PI); Console.WriteLine("Value of 2^3 is: " + Math.Pow(2, 3)); Console.WriteLine("Does 'inter' == 'inter'?: " + String.Equals("inter", "inter")); Console.WriteLine("Current Time is: " + DateTime.Now); Console.WriteLine("Current Day is: " + DateTime.Today); // indexer declaration and usage on classes Clients c1 = new Clients(); c1[0] = "inter"; c1[1] = "codes"; Console.WriteLine("\nClient class indexer operation: {0}\n", c1[1]); // Operator overloading Box b1 = new Box(20, 10); Box b2 = new Box(50, 20); var b3 = b1 + b2; Console.WriteLine(b3.Height); Console.WriteLine(b3.Width); Console.WriteLine(); // class inheritance - dervied class can be extended from base // classes. Person is the base class and Male is a derived class. Male m1 = new Male("Venkatesh", 15, "Chef"); // name and age are members in Person class that is reused in Male class m1.name = "Venky"; m1.SayHi(); // method in Person class m1.DisplayQualities(); // method in Male class Console.WriteLine(); // Polymorphism Shape s1 = new Shape(); s1.Draw(); // To implement polymorphism, we create objects of the base type, // but instantiate them as the derived type Square s2 = new Square(); s2.Draw(); Circle s3 = new Circle(); s3.Draw(); Console.WriteLine(); // Abstract Class/Methods Animal a1 = new Horse(); a1.Bark(); Animal a2 = new Griffin(); a2.Bark(); Console.WriteLine(); // Interfaces IElement ie1 = new Nitrogen(); ie1.AtomicNumber(); IElement ie2 = new Oxygen(); ie2.AtomicNumber(); IAtom ia1 = new Nitrogen(); ia1.ProtonCount(); IAtom ia2 = new Oxygen(); ia2.ProtonCount(); Console.WriteLine(); // Nested classes Car cr1 = new Car("Mazda"); Console.WriteLine(); // struct Book book1; book1.title = "Azkaban"; book1.author = "M. B Lowling"; book1.price = 45.34; Console.WriteLine(book1.title); Book book2 = new Book("First Blood", "Howard", 19.25); Console.WriteLine(book2.title); Console.WriteLine(); // enums Console.WriteLine("ENUMS -> Monday: {0}, Tuesday: {1}, Wednesday: {2}", (int)Days.Mon, (int)Days.Tue, (int)Days.Wed); Console.WriteLine(); // try-catch try { int[] arr1 = new int[] { 67, 89, 90 }; arr1[4] = 10; } catch (IndexOutOfRangeException e) { Console.WriteLine("Index was out of range. Check the length of your array."); } catch (Exception e) { // Exception class should come at the end after all the custom exceptions Console.WriteLine("Other error occurred.", e.Message); } //An optional finally block can be used after the catch blocks. The //finally block is used to execute a given set of statements, //whether an exception is thrown or not. The finally block can be //used, for example, when you work with files or other resources. //These should be closed or released in the finally block, whether //an exception is raised or not. finally { Console.WriteLine("Finally code block executes if a exception happens or not."); } Console.WriteLine(); // File read-write using System.IO namespace and classes inside it (e.g. File) string txtwrt = "Hello, World!"; File.WriteAllText("test.txt", txtwrt); string txtread = File.ReadAllText("test.txt"); Console.WriteLine(txtread); Console.WriteLine(); // Generics methods int swa = 10; int swb = 20; Console.WriteLine("Before swap: {0} & {1}", swa, swb); Generics.Swap <int>(ref swa, ref swb); Console.WriteLine("After swap: {0} & {1}", swa, swb); string swc = "Hello"; string swd = "World"; Console.WriteLine("Before swap: {0} & {1}", swc, swd); Generics.Swap <string>(ref swc, ref swd); Console.WriteLine("After swap: {0} & {1}", swc, swd); Console.WriteLine(); // Generic classes Stack <int> intStack = new Stack <int>(); intStack.Push(10); intStack.Push(20); Console.WriteLine("Get first element in int array: " + intStack.Get(0)); Console.WriteLine("Pop element from int array: " + intStack.Pop()); Stack <string> strStack = new Stack <string>(); strStack.Push("inter"); strStack.Push("codes"); Console.WriteLine("Get first element in str array: " + strStack.Get(0)); Console.WriteLine("Pop element from str array: " + strStack.Pop()); Stack <Person> personStack = new Stack <Person>(); personStack.Push(new Person()); personStack.Push(new Person()); Console.WriteLine("Get first element in Person array: " + personStack.Get(0)); Console.WriteLine("Pop element from Person array: " + personStack.Pop()); Console.WriteLine(); // Generic Collections - List, Dictionary, SortedList, Stack, Queue, Hashset List <int> lCol = new List <int>(); lCol.Add(10); lCol.Add(20); lCol.Remove(10); lCol.Add(30); Console.Write("List collection l: "); foreach (var items in lCol) { Console.Write(items + " "); } Console.WriteLine(); Console.WriteLine(); // Generic Collection - SortedList SortedList <int, string> sl1 = new SortedList <int, string>(); sl1.Add(0, "inter"); sl1.Add(10, "codes"); sl1.Remove(10); sl1.Add(20, "World"); Console.WriteLine("Sorted List Count: " + sl1.Count); foreach (int sk in sl1.Keys) { Console.WriteLine("Sorted List => Key: {0}; Value: {1}", sk, sl1[sk]); } Console.WriteLine(); // BitArray - Non-generic collection defined in System.Collections BitArray ba1 = new BitArray(4); BitArray ba2 = new BitArray(4); ba1.SetAll(true); ba2.SetAll(false); ba1.Set(2, false); ba2.Set(3, true); PrintBarr("ba1", ba1); PrintBarr("ba2", ba2); Console.WriteLine(); PrintBarr("ba1 AND ba2", ba1.And(ba2)); PrintBarr(" NOT ba2", ba2.Not()); }