diff --git a/go/tests/func/raid1a_test/main.go b/go/tests/func/quada_test/main.go similarity index 91% rename from go/tests/func/raid1a_test/main.go rename to go/tests/func/quada_test/main.go index 7c2f220fb..a1f12efaf 100644 --- a/go/tests/func/raid1a_test/main.go +++ b/go/tests/func/quada_test/main.go @@ -40,7 +40,7 @@ func printTheLines(x, y int, strBeg, strMed, strEnd string) { } } -func raid1a(x, y int) { +func quadA(x, y int) { if x < 1 || y < 1 { return } @@ -67,7 +67,7 @@ func main() { // Tests all possibilities including 0 0, -x y, x -y for i := 0; i < len(table); i += 2 { if i != len(table)-1 { - lib.Challenge("Raid1a", raid1a, student.Raid1a, table[i], table[i+1]) + lib.Challenge("QuadA", quadA, student.QuadA, table[i], table[i+1]) } } } diff --git a/go/tests/func/raid1b_test/main.go b/go/tests/func/quadb_test/main.go similarity index 78% rename from go/tests/func/raid1b_test/main.go rename to go/tests/func/quadb_test/main.go index 966ed6b6d..658d51e83 100644 --- a/go/tests/func/raid1b_test/main.go +++ b/go/tests/func/quadb_test/main.go @@ -8,7 +8,7 @@ import ( "lib" ) -func drawLineRaid1b(x int, s string) { +func drawLineQuadB(x int, s string) { beg := s[0] med := s[1] end := s[2] @@ -26,7 +26,7 @@ func drawLineRaid1b(x int, s string) { fmt.Println() } -func raid1b(x, y int) { +func quadB(x, y int) { if x < 1 || y < 1 { return } @@ -35,15 +35,15 @@ func raid1b(x, y int) { strEnd := "\\*/" if y >= 1 { - drawLineRaid1b(x, strBeg) + drawLineQuadB(x, strBeg) } if y > 2 { for i := 0; i < y-2; i++ { - drawLineRaid1b(x, strMed) + drawLineQuadB(x, strMed) } } if y > 1 { - drawLineRaid1b(x, strEnd) + drawLineQuadB(x, strEnd) } } @@ -67,7 +67,7 @@ func main() { // Tests all possibilities including 0 0, -x y, x -y for i := 0; i < len(table); i += 2 { if i != len(table)-1 { - lib.Challenge("Raid1b", raid1b, student.Raid1b, table[i], table[i+1]) + lib.Challenge("QuadB", quadB, student.QuadB, table[i], table[i+1]) } } } diff --git a/go/tests/func/raid1c_test/main.go b/go/tests/func/quadc_test/main.go similarity index 78% rename from go/tests/func/raid1c_test/main.go rename to go/tests/func/quadc_test/main.go index 7e948335a..b512b50b8 100644 --- a/go/tests/func/raid1c_test/main.go +++ b/go/tests/func/quadc_test/main.go @@ -8,7 +8,7 @@ import ( "lib" ) -func drawLineRaid1c(x int, s string) { +func drawLineQuadC(x int, s string) { beg := s[0] med := s[1] end := s[2] @@ -26,7 +26,7 @@ func drawLineRaid1c(x int, s string) { fmt.Println() } -func raid1c(x, y int) { +func quadC(x, y int) { if x < 1 || y < 1 { return } @@ -35,15 +35,15 @@ func raid1c(x, y int) { strEnd := "CBC" if y >= 1 { - drawLineRaid1c(x, strBeg) + drawLineQuadC(x, strBeg) } if y > 2 { for i := 0; i < y-2; i++ { - drawLineRaid1c(x, strMed) + drawLineQuadC(x, strMed) } } if y > 1 { - drawLineRaid1c(x, strEnd) + drawLineQuadC(x, strEnd) } } @@ -67,7 +67,7 @@ func main() { // Tests all possibilities including 0 0, -x y, x -y for i := 0; i < len(table); i += 2 { if i != len(table)-1 { - lib.Challenge("Raid1c", raid1c, student.Raid1c, table[i], table[i+1]) + lib.Challenge("QuadC", quadC, student.QuadC, table[i], table[i+1]) } } } diff --git a/go/tests/func/raid1d_test/main.go b/go/tests/func/quadd_test/main.go similarity index 78% rename from go/tests/func/raid1d_test/main.go rename to go/tests/func/quadd_test/main.go index 589ba7c38..f7ef33e04 100644 --- a/go/tests/func/raid1d_test/main.go +++ b/go/tests/func/quadd_test/main.go @@ -8,7 +8,7 @@ import ( "lib" ) -func drawLineRaid1d(x int, s string) { +func drawLineQuadD(x int, s string) { beg := s[0] med := s[1] end := s[2] @@ -26,7 +26,7 @@ func drawLineRaid1d(x int, s string) { fmt.Println() } -func raid1d(x, y int) { +func quadD(x, y int) { if x < 1 || y < 1 { return } @@ -35,15 +35,15 @@ func raid1d(x, y int) { strEnd := "ABC" if y >= 1 { - drawLineRaid1d(x, strBeg) + drawLineQuadD(x, strBeg) } if y > 2 { for i := 0; i < y-2; i++ { - drawLineRaid1d(x, strMed) + drawLineQuadD(x, strMed) } } if y > 1 { - drawLineRaid1d(x, strEnd) + drawLineQuadD(x, strEnd) } } @@ -67,7 +67,7 @@ func main() { // Tests all possibilities including 0 0, -x y, x -y for i := 0; i < len(table); i += 2 { if i != len(table)-1 { - lib.Challenge("Raid1d", raid1d, student.Raid1d, table[i], table[i+1]) + lib.Challenge("QuadD", quadD, student.QuadD, table[i], table[i+1]) } } } diff --git a/go/tests/func/raid1e_test/main.go b/go/tests/func/quade_test/main.go similarity index 78% rename from go/tests/func/raid1e_test/main.go rename to go/tests/func/quade_test/main.go index 5c80c3f38..90332f2a4 100644 --- a/go/tests/func/raid1e_test/main.go +++ b/go/tests/func/quade_test/main.go @@ -8,7 +8,7 @@ import ( "lib" ) -func drawLineRaid1e(x int, s string) { +func drawLineQuadE(x int, s string) { beg := s[0] med := s[1] end := s[2] @@ -26,7 +26,7 @@ func drawLineRaid1e(x int, s string) { fmt.Println() } -func raid1e(x, y int) { +func quadE(x, y int) { if x < 1 || y < 1 { return } @@ -35,15 +35,15 @@ func raid1e(x, y int) { strEnd := "CBA" if y >= 1 { - drawLineRaid1e(x, strBeg) + drawLineQuadE(x, strBeg) } if y > 2 { for i := 0; i < y-2; i++ { - drawLineRaid1e(x, strMed) + drawLineQuadE(x, strMed) } } if y > 1 { - drawLineRaid1e(x, strEnd) + drawLineQuadE(x, strEnd) } } @@ -67,7 +67,7 @@ func main() { // Tests all possibilities including 0 0, -x y, x -y for i := 0; i < len(table); i += 2 { if i != len(table)-1 { - lib.Challenge("Raid1e", raid1e, student.Raid1e, table[i], table[i+1]) + lib.Challenge("QuadE", quadE, student.QuadE, table[i], table[i+1]) } } } diff --git a/go/tests/prog/raid2_prog/main.go b/go/tests/prog/sudoku_prog/main.go similarity index 100% rename from go/tests/prog/raid2_prog/main.go rename to go/tests/prog/sudoku_prog/main.go diff --git a/go/tests/prog/raid2_test/main.go b/go/tests/prog/sudoku_test/main.go similarity index 96% rename from go/tests/prog/raid2_test/main.go rename to go/tests/prog/sudoku_test/main.go index cbcde7d65..73686fa4a 100644 --- a/go/tests/prog/raid2_test/main.go +++ b/go/tests/prog/sudoku_test/main.go @@ -286,13 +286,13 @@ func main() { } for _, v := range valid { - lib.ChallengeMain("raid2", v...) + lib.ChallengeMain("sudoku", v...) } for _, v := range invalid { - lib.ChallengeMain("raid2", v...) + lib.ChallengeMain("sudoku", v...) } - lib.ChallengeMain("raid2") - lib.ChallengeMain("raid2", "not", "a", "sudoku") + lib.ChallengeMain("sudoku") + lib.ChallengeMain("sudoku", "not", "a", "sudoku") } diff --git a/subjects/clonernews1/README.md b/subjects/clonernews1/README.md index 3df52b293..5cf40714d 100644 --- a/subjects/clonernews1/README.md +++ b/subjects/clonernews1/README.md @@ -16,6 +16,10 @@ You must handle at least: - [polls](https://github.com/HackerNews/API#items) - [comments](https://github.com/HackerNews/API#items), each comment must have the proper post parent. +Post and comments must be ordered by newest post to oldest. +You must not load all posts at once. You must be able to load posts when ever the users need to see more posts. This can be done with the help of [event](https://developer.mozilla.org/en-US/docs/Web/Events). + + [Live Data](https://github.com/HackerNews/API#live-data) : is one of the features from this Hacker News API, you can handle requests so that the news you provide are updated. - You must have a section that present the newest information. You will have to notify the user at least every 5 seconds, whenever the live data is updated. In other words, after every 5 seconds if a change was made in the live data, you have to notify the user. diff --git a/subjects/clonernews1/audit/README.md b/subjects/clonernews1/audit/README.md new file mode 100644 index 000000000..182805e57 --- /dev/null +++ b/subjects/clonernews1/audit/README.md @@ -0,0 +1,39 @@ +#### Functionals + +##### Try to open a story post + +###### Does this post open without problems? + +##### Try to open a job post + +###### Does this post open without problems? + +##### Try to open a poll post + +###### Does this post open without problems? + +##### Try to load more posts + +###### Did the posts loaded without error or without spamming the user? + +##### Try to open a post with comments + +###### Are the comments being displayed in the correct order (from newest to oldest)? + +#### General + +###### Does the UI have at least stories, jobs and polls? + +###### Are the posts displayed in the correct order(from newest to oldest)? + +###### Does each comment present the right parent post? + +###### Is the UI notifying the user that there is a new update on a certain post? + +###### Is the project using Throttle to regulate the amount of request (every 5 seconds)? + +#### Bonus + +###### +Does the UI have more types of posts than stories, jobs and polls? + +###### +Are there sub-comments(nested comments) on the UI? diff --git a/subjects/quad/README.md b/subjects/quad/README.md new file mode 100644 index 000000000..3658e078f --- /dev/null +++ b/subjects/quad/README.md @@ -0,0 +1,569 @@ +# quadrangle + +## quadA + +### Instructions + +Write a function `QuadA` that prints a **valid** rectangle of width `x` and of height `y`. + +The function must draw the rectangles as in the examples. + +`x` and `y` will always be positive numbers. Otherwise, the function should print nothing. + +### Expected function + +```go +func QuadA(x,y int) { + +} +``` + +### Usage + +Here are possible programs to test your function : + +Program #1 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadA(5,3) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +o---o +| | +o---o +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #2 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadA(5,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +o---o +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #3 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadA(1,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +o +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #4 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadA(1,5) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +o +| +| +| +o +student@ubuntu:~/[[ROOT]]/test$ +``` + +---- + +## quadB + +### Instructions + +Write a function `QuadB` that prints a **valid** rectangle of width `x` and of height `y`. + +The function must draw the rectangles as in the examples. + +`x` and `y` will always be positive numbers. Otherwise, the function should print nothing. + +### Expected function + +```go +func QuadB(x,y int) { + +} +``` + +### Usage + +Here are possible programs to test your function : + +Program #1 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadB(5,3) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +/***\ +* * +\***/ +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #2 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadB(5,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +/***\ +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #3 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadB(1,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +/ +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #4 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadB(1,5) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +/ +* +* +* +\ +student@ubuntu:~/[[ROOT]]/test$ +``` + +---- + +## quadC + +### Instructions + +Write a function `QuadC` that prints a **valid** rectangle of width `x` and of height `y`. + +The function must draw the rectangles as in the examples. + +`x` and `y` will always be positive numbers. Otherwise, the function should print nothing. + +### Expected function + +```go +func QuadC(x,y int) { + +} +``` + +### Usage + +Here are possible programs to test your function : + +Program #1 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadC(5,3) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +ABBBA +B B +CBBBC +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #2 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadC(5,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +ABBBA +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #3 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadC(1,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +A +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #4 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadC(1,5) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +A +B +B +B +C +student@ubuntu:~/[[ROOT]]/test$ +``` + +---- + +## quadD + +### Instructions + +Write a function `QuadD` that prints a **valid** rectangle of width `x` and of height `y`. + +The function must draw the rectangles as in the examples. + +`x` and `y` will always be positive numbers. Otherwise, the function should print nothing. + +### Expected function + +```go +func QuadD(x,y int) { + +} +``` + +### Usage + +Here are possible programs to test your function : + +Program #1 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadD(5,3) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +ABBBC +B B +ABBBC +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #2 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadD(5,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +ABBBC +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #3 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadD(1,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +A +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #4 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadD(1,5) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +A +B +B +B +A +student@ubuntu:~/[[ROOT]]/test$ +``` + +---- + +## quadE + +### Instructions + +Write a function `QuadE` that prints a **valid** rectangle of width `x` and of height `y`. + +The function must draw the rectangles as in the examples. + +`x` and `y` will always be positive numbers. Otherwise, the function should print nothing. + +### Expected function + +```go +func QuadE(x,y int) { + +} +``` + +### Usage + +Here are possible programs to test your function : + +Program #1 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadE(5,3) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +ABBBC +B B +CBBBA +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #2 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadE(5,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +ABBBC +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #3 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadE(1,1) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +A +student@ubuntu:~/[[ROOT]]/test$ +``` + +Program #4 + +```go +package main + +import piscine ".." + +func main() { + piscine.QuadE(1,5) +} +``` + +And its output : + +```console +student@ubuntu:~/[[ROOT]]/test$ go build +student@ubuntu:~/[[ROOT]]/test$ ./test +A +B +B +B +C +student@ubuntu:~/[[ROOT]]/test$ +``` diff --git a/subjects/quad/audit/README.md b/subjects/quad/audit/README.md new file mode 100644 index 000000000..0faf4a48b --- /dev/null +++ b/subjects/quad/audit/README.md @@ -0,0 +1,435 @@ +#### quadA + +##### Try running the function with the arguments: `"x=5 and y=3"` + +``` +o---o +| | +o---o +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=5 and y=1"` + +``` +o---o +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=1"` + +``` +o +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=5"` + +``` +o +| +| +| +o +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=0 and y=0"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=-1 and y=6"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=6 and y=-1"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=20 and y=1"` + +``` +o------------------o +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=10 and y=8"` + +``` +o--------o +| | +| | +| | +| | +| | +| | +o--------o +``` + +###### Does the function returns the value above? + +#### quadC + +##### Try running the function with the arguments: `"x=5 and y=3"` + +``` +/***\ +* * +\***/ +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=5 and y=1"` + +``` +/***\ +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=1"` + +``` +/ +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=5"` + +``` +/ +* +* +* +\ +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=0 and y=0"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=-1 and y=6"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=6 and y=-1"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=18 and y=6"` + +``` +/****************\ +* * +* * +* * +* * +\****************/ +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=9 and y=3"` + +``` +/*******\ +* * +\*******/ +``` + +###### Does the function returns the value above? + +#### quadC + +##### Try running the function with the arguments: `"x=5 and y=3"` + +``` +ABBBA +B B +CBBBC +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=5 and y=1"` + +``` +ABBBA +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=1"` + +``` +A +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=5"` + +``` +A +B +B +B +C +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=0 and y=0"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=-1 and y=6"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=6 and y=-1"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=13 and y=7"` + +``` +ABBBBBBBBBBBA +B B +B B +B B +B B +B B +CBBBBBBBBBBBC +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=10 and y=15"` + +``` +ABBBBBBBBA +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +CBBBBBBBBC +``` + +###### Does the function returns the value above? + +#### quadD + +##### Try running the function with the arguments: `"x=5 and y=3"` + +``` +ABBBC +B B +ABBBC +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=5 and y=1"` + +``` +ABBBC +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=1"` + +``` +A +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=5"` + +``` +A +B +B +B +A +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=0 and y=0"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=-1 and y=6"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=6 and y=-1"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=3 and y=16"` + +``` +ABC +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +ABC +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=7 and y=16"` + +``` +ABBBBBC +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +ABBBBBC +``` + +###### Does the function returns the value above? + +#### quadE + +##### Try running the function with the arguments: `"x=5 and y=3"` + +``` +ABBBC +B B +CBBBA +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=5 and y=1"` + +``` +ABBBC +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=1"` + +``` +A +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=1 and y=5"` + +``` +A +B +B +B +C +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=0 and y=0"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=-1 and y=6"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=6 and y=-1"` + +###### Does the function returns nothing? + +##### Try running the function with the arguments: `"x=21 and y=24"` + +``` +ABBBBBBBBBBBBBBBBBBBC +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +B B +CBBBBBBBBBBBBBBBBBBBA + +``` + +###### Does the function returns the value above? + +##### Try running the function with the arguments: `"x=18 and y=8"` + +``` +ABBBBBBBBBBBBBBBBC +B B +B B +B B +B B +B B +B B +CBBBBBBBBBBBBBBBBA + +``` + +###### Does the function returns the value above? diff --git a/subjects/raid1a/README.md b/subjects/quada/README.md similarity index 85% rename from subjects/raid1a/README.md rename to subjects/quada/README.md index 6d8989ccf..2a9f30392 100644 --- a/subjects/raid1a/README.md +++ b/subjects/quada/README.md @@ -1,8 +1,8 @@ -## raid1a +## quadrangle ### Instructions -Write a function `Raid1a` that prints a **valid** rectangle of width `x` and of height `y`. +Write a function `QuadA` that prints a **valid** rectangle of width `x` and of height `y`. The function must draw the rectangles as in the examples. @@ -11,7 +11,7 @@ The function must draw the rectangles as in the examples. ### Expected function ```go -func Raid1a(x,y int) { +func QuadA(x,y int) { } ``` @@ -28,7 +28,7 @@ package main import piscine ".." func main() { - piscine.Raid1a(5,3) + piscine.QuadA(5,3) } ``` @@ -51,7 +51,7 @@ package main import piscine ".." func main() { - piscine.Raid1a(5,1) + piscine.QuadA(5,1) } ``` @@ -72,7 +72,7 @@ package main import piscine ".." func main() { - piscine.Raid1a(1,1) + piscine.QuadA(1,1) } ``` @@ -93,7 +93,7 @@ package main import piscine ".." func main() { - piscine.Raid1a(1,5) + piscine.QuadA(1,5) } ``` diff --git a/subjects/raid1b/README.md b/subjects/quadb/README.md similarity index 85% rename from subjects/raid1b/README.md rename to subjects/quadb/README.md index fbe73adea..573a61c98 100644 --- a/subjects/raid1b/README.md +++ b/subjects/quadb/README.md @@ -1,8 +1,8 @@ -## raid1b +## quadrangle ### Instructions -Write a function `Raid1b` that prints a **valid** rectangle of width `x` and of height `y`. +Write a function `QuadB` that prints a **valid** rectangle of width `x` and of height `y`. The function must draw the rectangles as in the examples. @@ -11,7 +11,7 @@ The function must draw the rectangles as in the examples. ### Expected function ```go -func Raid1b(x,y int) { +func QuadB(x,y int) { } ``` @@ -28,7 +28,7 @@ package main import piscine ".." func main() { - piscine.Raid1b(5,3) + piscine.QuadB(5,3) } ``` @@ -51,7 +51,7 @@ package main import piscine ".." func main() { - piscine.Raid1b(5,1) + piscine.QuadB(5,1) } ``` @@ -72,7 +72,7 @@ package main import piscine ".." func main() { - piscine.Raid1b(1,1) + piscine.QuadB(1,1) } ``` @@ -93,7 +93,7 @@ package main import piscine ".." func main() { - piscine.Raid1b(1,5) + piscine.QuadB(1,5) } ``` diff --git a/subjects/raid1c/README.md b/subjects/quadc/README.md similarity index 85% rename from subjects/raid1c/README.md rename to subjects/quadc/README.md index 1dd3e2ef8..0bdbad69c 100644 --- a/subjects/raid1c/README.md +++ b/subjects/quadc/README.md @@ -1,8 +1,8 @@ -## raid1c +## quadrangle ### Instructions -Write a function `Raid1c` that prints a **valid** rectangle of width `x` and of height `y`. +Write a function `QuadC` that prints a **valid** rectangle of width `x` and of height `y`. The function must draw the rectangles as in the examples. @@ -11,7 +11,7 @@ The function must draw the rectangles as in the examples. ### Expected function ```go -func Raid1c(x,y int) { +func QuadC(x,y int) { } ``` @@ -28,7 +28,7 @@ package main import piscine ".." func main() { - piscine.Raid1c(5,3) + piscine.QuadC(5,3) } ``` @@ -51,7 +51,7 @@ package main import piscine ".." func main() { - piscine.Raid1c(5,1) + piscine.QuadC(5,1) } ``` @@ -72,7 +72,7 @@ package main import piscine ".." func main() { - piscine.Raid1c(1,1) + piscine.QuadC(1,1) } ``` @@ -93,7 +93,7 @@ package main import piscine ".." func main() { - piscine.Raid1c(1,5) + piscine.QuadC(1,5) } ``` diff --git a/subjects/quadchecker/README.md b/subjects/quadchecker/README.md new file mode 100644 index 000000000..74a1577d5 --- /dev/null +++ b/subjects/quadchecker/README.md @@ -0,0 +1,62 @@ +## quadchecker + +### Instructions + +This raid is based on the `quad` functions. + +Create a program `quadchecker` that takes a `string` as an argument and displays the name of the matching `quad` and its dimensions. + +- If the argument is not a `raid` the program should print `Not a Raid function`. + +- All answers must end with a newline (`'\n'`). + +- If there is more than one `quad` matches, the program must display them all alphabetically ordered and separated by a `||`. + +### Usage + +- If it's `quadA` + +```console +student@ubuntu:~/[[ROOT]]/quadchecker$ ls -l +-rw-r--r-- 1 student student nov 23 14:30 main.go +-rwxr-xr-x 1 student student nov 23 19:18 quadchecker +-rwxr-xr-x 1 student student nov 23 19:50 quadA +-rwxr-xr-x 1 student student nov 23 19:50 quadB +-rwxr-xr-x 1 student student nov 23 19:50 quadC +-rwxr-xr-x 1 student student nov 23 19:50 quadD +-rwxr-xr-x 1 student student nov 23 19:50 quadE +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadA 3 3 | ./quadchecker +[quadA] [3] [3] +student@ubuntu:~/[[ROOT]]/quadchecker$ +student@ubuntu:~/[[ROOT]]/quadchecker$ +student@ubuntu:~/[[ROOT]]/quadchecker$ +student@ubuntu:~/[[ROOT]]/quadchecker$ +``` + +- If it's `quadC 1 1` : + +```console +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadC 1 1 +A +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadD 1 1 +A +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadE 1 1 +A +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadC 1 1 | ./quadchecker +[quadC] [1] [1] || [quadD] [1] [1] || [quadE] [1] [1] +student@ubuntu:~/[[ROOT]]/quadchecker$ +``` + +- If it's `quadC 1 2` : + +```console +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadE 1 2 +A +C +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadC 1 2 +A +C +student@ubuntu:~/[[ROOT]]/quadchecker$ ./quadE 1 2 | ./quadchecker +[quadC] [1] [2] || [quadE] [1] [2] +student@ubuntu:~/[[ROOT]]/quadchecker$ +``` diff --git a/subjects/quadchecker/audit/README.md b/subjects/quadchecker/audit/README.md new file mode 100644 index 000000000..0a240c635 --- /dev/null +++ b/subjects/quadchecker/audit/README.md @@ -0,0 +1,73 @@ +#### Quadrangle Checker + +##### Try running the program: `"./quadA 3 3 | ./quadchecker"` + +``` +[quadA] [3] [3] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadB 3 3 | ./quadchecker"` + +``` +[quadB] [3] [3] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadC 1 1 | ./quadchecker"` + +``` +[quadC] [1] [1] || [quadD] [1] [1] || [quadE] [1] [1] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadE 1 2 | ./quadchecker"` + +``` +[quadC] [1] [2] || [quadE] [1] [2] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadE 2 1 | ./quadchecker"` + +``` +[quadD] [2] [1] || [quadE] [2] [1] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadC 2 1 | ./quadchecker"` + +``` +[quadC] [2] [1] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadD 1 2 | ./quadchecker"` + +``` +[quadD] [1] [2] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"./quadE 1 1 | ./quadchecker"` + +``` +[quadC] [1] [1] || [quadD] [1] [1] || [quadE] [1] [1] +``` + +###### Does the program returns the value above? + +##### Try running the program: `"echo 0 0 | ./quadchecker"` + +``` +Not a Raid function +``` + +###### Does the program returns the value above? diff --git a/subjects/raid1d/README.md b/subjects/quadd/README.md similarity index 85% rename from subjects/raid1d/README.md rename to subjects/quadd/README.md index fc68d54db..8e709ed62 100644 --- a/subjects/raid1d/README.md +++ b/subjects/quadd/README.md @@ -1,8 +1,8 @@ -## raid1d +## quadrangle ### Instructions -Write a function `Raid1d` that prints a **valid** rectangle of width `x` and of height `y`. +Write a function `QuadD` that prints a **valid** rectangle of width `x` and of height `y`. The function must draw the rectangles as in the examples. @@ -11,7 +11,7 @@ The function must draw the rectangles as in the examples. ### Expected function ```go -func Raid1d(x,y int) { +func QuadD(x,y int) { } ``` @@ -28,7 +28,7 @@ package main import piscine ".." func main() { - piscine.Raid1d(5,3) + piscine.QuadD(5,3) } ``` @@ -51,7 +51,7 @@ package main import piscine ".." func main() { - piscine.Raid1d(5,1) + piscine.QuadD(5,1) } ``` @@ -72,7 +72,7 @@ package main import piscine ".." func main() { - piscine.Raid1d(1,1) + piscine.QuadD(1,1) } ``` @@ -93,7 +93,7 @@ package main import piscine ".." func main() { - piscine.Raid1d(1,5) + piscine.QuadD(1,5) } ``` diff --git a/subjects/raid1e/README.md b/subjects/quade/README.md similarity index 85% rename from subjects/raid1e/README.md rename to subjects/quade/README.md index ed66922eb..13b380b9c 100644 --- a/subjects/raid1e/README.md +++ b/subjects/quade/README.md @@ -1,8 +1,8 @@ -## raid1e +## quadrangle ### Instructions -Write a function `Raid1e` that prints a **valid** rectangle of width `x` and of height `y`. +Write a function `QuadE` that prints a **valid** rectangle of width `x` and of height `y`. The function must draw the rectangles as in the examples. @@ -11,7 +11,7 @@ The function must draw the rectangles as in the examples. ### Expected function ```go -func Raid1e(x,y int) { +func QuadE(x,y int) { } ``` @@ -28,7 +28,7 @@ package main import piscine ".." func main() { - piscine.Raid1e(5,3) + piscine.QuadE(5,3) } ``` @@ -51,7 +51,7 @@ package main import piscine ".." func main() { - piscine.Raid1e(5,1) + piscine.QuadE(5,1) } ``` @@ -72,7 +72,7 @@ package main import piscine ".." func main() { - piscine.Raid1e(1,1) + piscine.QuadE(1,1) } ``` @@ -93,7 +93,7 @@ package main import piscine ".." func main() { - piscine.Raid1e(1,5) + piscine.QuadE(1,5) } ``` diff --git a/subjects/raid2/README.md b/subjects/raid2/README.md deleted file mode 100644 index e22f7752e..000000000 --- a/subjects/raid2/README.md +++ /dev/null @@ -1,42 +0,0 @@ -## raid2 - -### Instructions - -- Create a program that resolves a sudoku. - -- A valid sudoku has only one possible solution. - -### Usage - -#### Example 1: - -Example of output for one valid sudoku : - -```console -student@ubuntu:~/[[ROOT]]/raid2$ go build -student@ubuntu:~/[[ROOT]]/raid2$ ./raid2 ".96.4...1" "1...6...4" "5.481.39." "..795..43" ".3..8...." "4.5.23.18" ".1.63..59" ".59.7.83." "..359...7" | cat -e -3 9 6 2 4 5 7 8 1$ -1 7 8 3 6 9 5 2 4$ -5 2 4 8 1 7 3 9 6$ -2 8 7 9 5 1 6 4 3$ -9 3 1 4 8 6 2 7 5$ -4 6 5 7 2 3 9 1 8$ -7 1 2 6 3 8 4 5 9$ -6 5 9 1 7 4 8 3 2$ -8 4 3 5 9 2 1 6 7$ -student@ubuntu:~/[[ROOT]]/raid2$ -``` - -#### Example 2: - -Examples of output for invalid input or sudokus : - -```console -student@ubuntu:~/[[ROOT]]/raid2$ ./raid2 1 2 3 4 | cat -e -Error$ -student@ubuntu:~/[[ROOT]]/raid2$ ./raid2 | cat -e -Error$ -student@ubuntu:~/[[ROOT]]/raid2$ ./raid2 ".96.4...1" "1...6.1.4" "5.481.39." "..795..43" ".3..8...." "4.5.23.18" ".1.63..59" ".59.7.83." "..359...7" | cat -e -Error$ -student@ubuntu:~/[[ROOT]]/raid2$ -``` diff --git a/subjects/raid3/README.md b/subjects/raid3/README.md deleted file mode 100644 index a2eea0cc2..000000000 --- a/subjects/raid3/README.md +++ /dev/null @@ -1,62 +0,0 @@ -## raid3 - -### Instructions - -This raid is based on the `raid1` functions. - -Create a program `raid3` that takes a `string` as an argument and displays the name of the matching `raid1` and its dimensions. - -- If the argument is not a `raid1` the program should print `Not a Raid function`. - -- All answers must end with a newline (`'\n'`). - -- If there is more than one `raid1` matches, the program must display them all alphabetically ordered and separated by a `||`. - -### Usage - -- If it's `raid1a` - -```console -student@ubuntu:~/[[ROOT]]/raid3$ ls -l --rw-r--r-- 1 student student nov 23 14:30 main.go --rwxr-xr-x 1 student student nov 23 19:18 raid3 --rwxr-xr-x 1 student student nov 23 19:50 raid1a --rwxr-xr-x 1 student student nov 23 19:50 raid1b --rwxr-xr-x 1 student student nov 23 19:50 raid1c --rwxr-xr-x 1 student student nov 23 19:50 raid1d --rwxr-xr-x 1 student student nov 23 19:50 raid1e -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1a 3 3 | ./raid3 -[raid1a] [3] [3] -student@ubuntu:~/[[ROOT]]/raid3$ -student@ubuntu:~/[[ROOT]]/raid3$ -student@ubuntu:~/[[ROOT]]/raid3$ -student@ubuntu:~/[[ROOT]]/raid3$ -``` - -- If it's `raidc 1 1` : - -```console -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1c 1 1 -A -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1d 1 1 -A -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1e 1 1 -A -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1c 1 1 | ./raid3 -[raid1c] [1] [1] || [raid1d] [1] [1] || [raid1e] [1] [1] -student@ubuntu:~/[[ROOT]]/raid3$ -``` - -- If it's `raidc 1 2` : - -```console -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1e 1 2 -A -C -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1c 1 2 -A -C -student@ubuntu:~/[[ROOT]]/raid3$ ./raid1e 1 2 | ./raid3 -[raid1c] [1] [2] || [raid1e] [1] [2] -student@ubuntu:~/[[ROOT]]/raid3$ -``` diff --git a/subjects/sortable1/README.md b/subjects/sortable1/README.md index bd0302f25..c21ac3adb 100644 --- a/subjects/sortable1/README.md +++ b/subjects/sortable1/README.md @@ -32,21 +32,21 @@ fetch('https://rawcdn.githack.com/akabab/superhero-api/0.2.0/api/all.json') .then(loadData) // .then will call the function with the JSON value ``` - #### Display Not every field should be presented in a `` element, the necessary data will be: - - Icon (`.images.xs`, should be displayed as images and not as a string) - - Name (`.name`) - - Full Name (`.biography.fullName`) - - Powerstats (each entry of `.powerstats`) - - Race (`.appearance.race`) - - Gender (`.appearance.gender`) - - Height (`.appearance.height`) - - Weight (`.appearance.weight`) - - Place Of Birth (`.biography.placeOfBirth`) - - Alignement (`.biography.alignment`) + +- Icon (`.images.xs`, should be displayed as images and not as a string) +- Name (`.name`) +- Full Name (`.biography.fullName`) +- Powerstats (each entry of `.powerstats`) +- Race (`.appearance.race`) +- Gender (`.appearance.gender`) +- Height (`.appearance.height`) +- Weight (`.appearance.weight`) +- Place Of Birth (`.biography.placeOfBirth`) +- Alignement (`.biography.alignment`) The information must be displayed in multiple pages. \ A `` input is used to chose from `10`, `20`,`50`, `100` or `all results` It must be possible to filter information by searching the name as a string *(ex: superheroes that contain **man** in their name).* - - The search should be interactive, in other words, the results should be +- The search should be interactive, in other words, the results should be displaying as you write, not needing a button for you to click. - #### Sort It must be possible to sort by any columns of the table *(either alphabetically or numerically).* - - Initially all rows should be sorted by the column `name` by `ascending` order - - First click will order the column by `ascending` value - - Consecutive clicks will toggle between `ascending` and `descending` order - - Note that, for example, the column `weight` will be composed of strings, so + +- Initially all rows should be sorted by the column `name` by `ascending` order +- First click will order the column by `ascending` value +- Consecutive clicks will toggle between `ascending` and `descending` order +- Note that, for example, the column `weight` will be composed of strings, so the correct order would be `['78 kg', '100 kg']` instead of the other way around - - Missing values should always be sorted last. +- Missing values should always be sorted last. > As you know, when you are against heroes, **speed** is critical, every operations on > the database should be very fast and not slow down the browser - ### Optional Any additional features will be critical to your success, everything count: diff --git a/subjects/sortable1/audit/README.md b/subjects/sortable1/audit/README.md new file mode 100644 index 000000000..37f1850a2 --- /dev/null +++ b/subjects/sortable1/audit/README.md @@ -0,0 +1,55 @@ +#### Functionals + +###### Does the data appear in a table element? + +###### Does the table presents just the requested data (icon, name, full name, powerstats, race, gender, height, weight, place of birth, alignment), instead of all of it? + +###### Are there different pages that display different information? + +###### Can you change the amount of results displayed between **10**, **20**, **50**, **100** or **all results**? + +###### Does the table initially displays 20 results? + +###### Are the results initially sorted by the column **name** by **ascending** order? + +###### Are all columns of the table clickable in order to sort the results? + +##### Try to click once to sort the table by weight. + +###### Did the results became sorted numerically by weight in **ascending** order? (be aware that cases like [75 kg, 100kg] should be in that order and not the other way around) + +##### Try to click twice to sort the by place of birth. + +###### Did the results became sorted alphabetically by place of birth in **descending** order? + +##### Try to click several times on a column and observe its behavior. + +###### Did the results became sorted in **ascending** and **descending** order, alternately? + +##### Try to search for `Superman`. + +###### Are the missing values always shown last? + +###### As you type, does the results on the table change? + +##### Write only `Cat` on the search field. + +###### Does Catwoman appear on the results? + +###### Does the project contains the use of `fetch`? + +#### Bonus + +###### +Can you search for any fields apart from the name? + +###### +Can you do a search with search operators (include/exclude for strings and equal/not equal/greater than/lesser than)? + +###### +If you click on a hero, does the site displays the details and a large image of it? + +###### +Does the URL changes when you make a search? + +###### +After making a search and the URL changes, if you copy and paste it in a different window, are the results displayed in the table the same as the ones from the search? + +###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc) + +###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/README.md)? \ No newline at end of file diff --git a/subjects/sudoku/README.md b/subjects/sudoku/README.md new file mode 100644 index 000000000..d263c4948 --- /dev/null +++ b/subjects/sudoku/README.md @@ -0,0 +1,42 @@ +## sudoku + +### Instructions + +- Create a program that resolves a sudoku. + +- A valid sudoku has only one possible solution. + +### Usage + +#### Example 1: + +Example of output for one valid sudoku : + +```console +student@ubuntu:~/[[ROOT]]/sudoku$ go build +student@ubuntu:~/[[ROOT]]/sudoku$ ./sudoku ".96.4...1" "1...6...4" "5.481.39." "..795..43" ".3..8...." "4.5.23.18" ".1.63..59" ".59.7.83." "..359...7" | cat -e +3 9 6 2 4 5 7 8 1$ +1 7 8 3 6 9 5 2 4$ +5 2 4 8 1 7 3 9 6$ +2 8 7 9 5 1 6 4 3$ +9 3 1 4 8 6 2 7 5$ +4 6 5 7 2 3 9 1 8$ +7 1 2 6 3 8 4 5 9$ +6 5 9 1 7 4 8 3 2$ +8 4 3 5 9 2 1 6 7$ +student@ubuntu:~/[[ROOT]]/sudoku$ +``` + +#### Example 2: + +Examples of output for invalid input or sudokus : + +```console +student@ubuntu:~/[[ROOT]]/sudoku$ ./sudoku 1 2 3 4 | cat -e +Error$ +student@ubuntu:~/[[ROOT]]/sudoku$ ./sudoku | cat -e +Error$ +student@ubuntu:~/[[ROOT]]/sudoku$ ./sudoku ".96.4...1" "1...6.1.4" "5.481.39." "..795..43" ".3..8...." "4.5.23.18" ".1.63..59" ".59.7.83." "..359...7" | cat -e +Error$ +student@ubuntu:~/[[ROOT]]/sudoku$ +``` diff --git a/subjects/raid2/audit/README.md b/subjects/sudoku/audit/README.md similarity index 99% rename from subjects/raid2/audit/README.md rename to subjects/sudoku/audit/README.md index c8dff73ed..5e7f42ba3 100644 --- a/subjects/raid2/audit/README.md +++ b/subjects/sudoku/audit/README.md @@ -1,4 +1,4 @@ -#### Raid 2 +#### Sudoku ##### Try running the program with the arguments: `"".96.4...1" "1...6...4" "5.481.39." "..795..43" ".3..8...." "4.5.23.18" ".1.63..59" ".59.7.83." "..359...7""`