diff --git a/README.md b/README.md index 2b3b5a5..79a4782 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,5 @@ ["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is the traditional first program for beginning programming in a new language. -**Note:** You can skip this exercise by running: - - exercism skip $LANGUAGE hello-world - ## Specification The `Hello World!` program will greet me, the caller. @@ -16,20 +12,20 @@ If I neglect to give it my name, it will greet me by saying "Hello, World!" As programmers mature, they eventually want to test their code. -Here at Exercism we simulate [Test-Driven Development](http://en.wikipedia.org/wiki/Test-driven_development) (TDD), where you write your tests before writing any functionality. The simulation comes in the form of a pre-written test suite, which will signal that you have solved the problem. +Here we simulate [Test-Driven Development](http://en.wikipedia.org/wiki/Test-driven_development) (TDD), where you write your tests before writing any functionality. The simulation comes in the form of a pre-written test suite, which will signal that you have solved the problem. It will also provide you with a safety net to explore other solutions without breaking the functionality. -### A typical TDD workflow on Exercism: +### A typical TDD workflow 1. Run the test file and pick one test that's failing. 2. Write some code to fix the test you picked. 3. Re-run the tests to confirm the test is now passing. 4. Repeat from step 1. -5. Submit your solution (`exercism submit /path/to/file`) +5. Submit your solution. ## Instructions Submissions are encouraged to be general, within reason. Having said that, it's also important not to over-engineer a solution. -It's important to remember that the goal is to make code as expressive and readable as we can. However, solutions to the hello-world exercise will not be reviewed by a person, but by rikki- the robot, who will offer an encouraging word. +It's important to remember that the goal is to make code as expressive and readable as we can. However, solutions to the hello-world exercise will not be reviewed by a person, but by the robot, who will offer an encouraging word. diff --git a/Suliman/README.md b/Suliman/README.md new file mode 100644 index 0000000..79a4782 --- /dev/null +++ b/Suliman/README.md @@ -0,0 +1,31 @@ +["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is the traditional first program for beginning programming in a new language. + +## Specification + +The `Hello World!` program will greet me, the caller. + +If I tell the program my name is Alice, it will greet me by saying "Hello, Alice!". + +If I neglect to give it my name, it will greet me by saying "Hello, World!" + +## Test-Driven Development + +As programmers mature, they eventually want to test their code. + +Here we simulate [Test-Driven Development](http://en.wikipedia.org/wiki/Test-driven_development) (TDD), where you write your tests before writing any functionality. The simulation comes in the form of a pre-written test suite, which will signal that you have solved the problem. + +It will also provide you with a safety net to explore other solutions without breaking the functionality. + +### A typical TDD workflow + +1. Run the test file and pick one test that's failing. +2. Write some code to fix the test you picked. +3. Re-run the tests to confirm the test is now passing. +4. Repeat from step 1. +5. Submit your solution. + +## Instructions + +Submissions are encouraged to be general, within reason. Having said that, it's also important not to over-engineer a solution. + +It's important to remember that the goal is to make code as expressive and readable as we can. However, solutions to the hello-world exercise will not be reviewed by a person, but by the robot, who will offer an encouraging word. diff --git a/Suliman/README.yml b/Suliman/README.yml new file mode 100644 index 0000000..825d4e9 --- /dev/null +++ b/Suliman/README.yml @@ -0,0 +1,4 @@ +--- +blurb: 'Write a program that greets the user by name, or by saying "Hello, World!" if no name is given.' +source: "This is a program to introduce users to using Exercism" +source_url: "http://en.wikipedia.org/wiki/%22Hello,_world!%22_program" diff --git a/Suliman/hello_world.py b/Suliman/hello_world.py new file mode 100644 index 0000000..0e2949f --- /dev/null +++ b/Suliman/hello_world.py @@ -0,0 +1,2 @@ +person = raw_input('Enter your name: ') +print('Hello', person) diff --git a/Suliman/hello_world.py~ b/Suliman/hello_world.py~ new file mode 100644 index 0000000..4aeb02d --- /dev/null +++ b/Suliman/hello_world.py~ @@ -0,0 +1,6 @@ +# +# Skeleton file for the Python "Hello World" exercise. +# + +person = raw_input('Enter your name: ') +print('Hello', person) diff --git a/Suliman/hello_world_test.py b/Suliman/hello_world_test.py new file mode 100644 index 0000000..a2d2b8c --- /dev/null +++ b/Suliman/hello_world_test.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals +import unittest + +import hello_world + + +class HelloWorldTests(unittest.TestCase): + + def test_hello_without_name(self): + self.assertEqual( + 'Hello, World!', + hello_world.hello() + ) + + def test_hello_with_sample_name(self): + self.assertEqual( + 'Hello, Alice!', + hello_world.hello('Alice') + ) + + def test_hello_with_other_sample_name(self): + self.assertEqual( + 'Hello, Bob!', + hello_world.hello('Bob') + ) + + def test_hello_with_umlaut_name(self): + self.assertEqual( + 'Hello, Jürgen!', + hello_world.hello('Jürgen') + ) + +if __name__ == '__main__': + unittest.main() diff --git a/hello_world.py b/hello_world.py index bfcb36f..4aeb02d 100644 --- a/hello_world.py +++ b/hello_world.py @@ -2,6 +2,5 @@ # Skeleton file for the Python "Hello World" exercise. # - -def hello(name=''): - return +person = raw_input('Enter your name: ') +print('Hello', person) diff --git a/hello_world.pyc b/hello_world.pyc deleted file mode 100644 index 5445b77..0000000 Binary files a/hello_world.pyc and /dev/null differ diff --git a/hello_world.py~ b/hello_world.py~ new file mode 100644 index 0000000..bfcb36f --- /dev/null +++ b/hello_world.py~ @@ -0,0 +1,7 @@ +# +# Skeleton file for the Python "Hello World" exercise. +# + + +def hello(name=''): + return