-
Notifications
You must be signed in to change notification settings - Fork 11
First attempt at inheritance homework. #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
synflyn28
wants to merge
6
commits into
joshdmiller:master
Choose a base branch
from
synflyn28:develop
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
21a7564
First attempt at inheritance homework.
synflyn28 7e5daf1
Second attempt at inheritance homework. This addresses the issue of a…
synflyn28 75fcdfe
Third attempt at inheritance homework. This time making unique speak …
synflyn28 6f7c2f7
4th Attempt at Inheritance homework. Refactored code to use Object.cr…
synflyn28 daa7404
Implemented the same functionality as with original code, but this ti…
synflyn28 cd1b8ff
Changed human method so that it accepts a parameter and not an constant.
synflyn28 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,2 @@ | ||
| node_modules/ | ||
| .idea/ | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| /** | ||
| * Created by towershine on 12/13/16. | ||
| */ | ||
| import test from 'tape'; | ||
| import {Animal, Reptile, Primate, Human} from './index_classes'; | ||
|
|
||
|
|
||
| test('Test to see if a new "Animal" instance can be created', function (test) { | ||
| const animal = new Animal(); | ||
| test.ok( animal instanceof Animal, 'should create an instance of Animal'); | ||
| test.end(); | ||
| }); | ||
|
|
||
| test('Test to see if the Animal type has a "speak" method', function (test) { | ||
|
|
||
| const animal = new Animal(); | ||
| const expected = 'generic sound'; | ||
| const actual = animal.speak(); | ||
|
|
||
| test.equal( actual, expected, 'should make a generic sound when it speaks' ); | ||
| test.end(); | ||
| }); | ||
|
|
||
| test('Test to see if "Primates" and "Reptiles" can be made from "Animals"', function (test) { | ||
|
|
||
| let actual, expected; | ||
|
|
||
| const reptile = new Reptile(); | ||
|
|
||
| test.ok( reptile instanceof Reptile, 'should be an instance of Reptile' ); | ||
| test.ok( reptile instanceof Animal, 'should be an instance of Animal' ); | ||
|
|
||
| expected = Reptile.SOUND; | ||
| actual = reptile.speak(); | ||
| test.equal( actual, expected, 'should make a reptile sound when it speaks' ); | ||
|
|
||
| const primate = new Primate(); | ||
|
|
||
| test.ok( primate instanceof Primate, 'should be an instance of Primate' ); | ||
| test.ok( primate instanceof Animal, 'should be an instance of Animal' ); | ||
|
|
||
| expected = Primate.SOUND; | ||
| actual = primate.speak(); | ||
| test.equal( actual, expected, 'should make a primate sound when it speaks' ); | ||
|
|
||
| test.end(); | ||
| }); | ||
|
|
||
| test('Test to see if a human can be made and it can speak', function (test) { | ||
|
|
||
| let actual, expected; | ||
|
|
||
| const human = new Human(); | ||
|
|
||
| test.ok( human instanceof Human, 'should be an instance of Human' ); | ||
| test.ok( human instanceof Primate, 'should be an instance of Primate' ); | ||
| test.ok( human instanceof Animal, 'should be an instance of Animal' ); | ||
|
|
||
| const message = 'hello'; | ||
| expected = message; | ||
| actual = human.speak( message ); | ||
| test.equal( actual, expected, 'should speak what it is asked to speak' ); | ||
| test.end(); | ||
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| export class Animal { | ||
| constructor () {} | ||
|
|
||
| static SOUND = 'generic sound'; | ||
|
|
||
| speak() { | ||
| return Animal.SOUND; | ||
| } | ||
| } | ||
|
|
||
| export class Reptile extends Animal { | ||
| constructor () { | ||
| super(); | ||
| } | ||
|
|
||
| static SOUND = 'Roar'; | ||
|
|
||
| speak() { | ||
| return Reptile.SOUND; | ||
| } | ||
| } | ||
|
|
||
| export class Primate extends Animal { | ||
| constructor() { | ||
| super(); | ||
| } | ||
|
|
||
| static SOUND = 'Ooh Ooh Eeh!'; | ||
| speak() { | ||
| return Primate.SOUND; | ||
| } | ||
| } | ||
|
|
||
| export class Human extends Primate { | ||
| constructor() { | ||
| super(); | ||
| } | ||
| speak(message) { | ||
| return message; | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,30 +1,61 @@ | ||
| import test from 'tape'; | ||
| import { double, doubleXTimes, doubleEach } from './index'; | ||
| import {Animal, Reptile, Primate, Human} from './index'; | ||
|
|
||
| test( 'double fn', function ( test ) { | ||
| const actual = double( 5 ); | ||
| const expected = 10; | ||
|
|
||
| test.equal( actual, expected, 'should double the value' ); | ||
|
|
||
| test.end(); | ||
| test('Test to see if a new "Animal" instance can be created', function (test) { | ||
| const animal = new Animal(); | ||
| test.ok( animal instanceof Animal, 'should create an instance of Animal'); | ||
| test.end(); | ||
| }); | ||
|
|
||
| test( 'doubleXTimes', function ( test ) { | ||
| const actual = doubleXTimes( 5, 3 ); | ||
| const expected = 40; | ||
| test('Test to see if the Animal type has a "speak" method', function (test) { | ||
|
|
||
| test.equal( actual, expected, 'should double 5 three times' ); | ||
| const animal = new Animal(); | ||
| const expected = 'generic sound'; | ||
| const actual = animal.speak(); | ||
|
|
||
| test.end(); | ||
| test.equal( actual, expected, 'should make a generic sound when it speaks' ); | ||
| test.end(); | ||
| }); | ||
|
|
||
| test( 'doubleEach', function ( test ) { | ||
| const actual = doubleEach([ 0, 1, 2 ]); | ||
| const expected = [ 0, 2, 4 ]; | ||
| test('Test to see if "Primates" and "Reptiles" can be made from "Animals"', function (test) { | ||
|
|
||
| let actual, expected; | ||
|
|
||
| const reptile = new Reptile(); | ||
|
|
||
| test.ok( reptile instanceof Reptile, 'should be an instance of Reptile' ); | ||
| test.ok( reptile instanceof Animal, 'should be an instance of Animal' ); | ||
|
|
||
| expected = Reptile.SOUND; | ||
| actual = reptile.speak(); | ||
| test.equal( actual, expected, 'should make a reptile sound when it speaks' ); | ||
|
|
||
| const primate = new Primate(); | ||
|
|
||
| test.deepEqual( actual, expected, 'should double each in the array' ); | ||
| test.ok( primate instanceof Primate, 'should be an instance of Primate' ); | ||
| test.ok( primate instanceof Animal, 'should be an instance of Animal' ); | ||
|
|
||
| test.end(); | ||
| expected = Primate.SOUND; | ||
| actual = primate.speak(); | ||
| test.equal( actual, expected, 'should make a primate sound when it speaks' ); | ||
|
|
||
| test.end(); | ||
| }); | ||
|
|
||
| test('Test to see if a human can be made and it can speak', function (test) { | ||
|
|
||
| let actual, expected; | ||
|
|
||
| const human = new Human(); | ||
|
|
||
| test.ok( human instanceof Human, 'should be an instance of Human' ); | ||
| test.ok( human instanceof Primate, 'should be an instance of Primate' ); | ||
| test.ok( human instanceof Animal, 'should be an instance of Animal' ); | ||
|
|
||
| const message = 'hello'; | ||
| expected = message; | ||
| actual = human.speak( message ); | ||
| test.equal( actual, expected, 'should speak what it is asked to speak' ); | ||
| test.end(); | ||
| }); |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<random-thought>Random comment having nothing to do with this class nor even javascript: you can define a global
gitignorefile that applies to all repositories, which is a good place for stuff like this. I do it that way so I can omit files that my editor generates without (a) having to change every gitignore in every repo I ever touch; and (b) to prevent committing irrelevant code to repos.</random-thought>There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't know you could define a global .gitignore across repositories as I mostly just write them per-project. Are you simply just keeping the configurations in a common repository or are you doing any special Github linking between projects?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it's more "set it and forget it". Check out the link from my first comment. You just keep a file on your computer someplace that looks like a gitignore file and you put its location in your configuration for git (can be done from cli too).