mirror of https://github.com/01-edu/public.git
Merge pull request #987 from 01-edu/content-update
Content update my-ls-1
This commit is contained in:
commit
0f3c2450ba
|
@ -3,7 +3,7 @@
|
|||
Our courses are meticulously studied in order to provide you with quality projects.
|
||||
Please take into account our approach before making **Issues**
|
||||
|
||||
Some feedback relates to the **ambiguity of the subject** / **the lack of precision**, and this **is voluntary on our part**.
|
||||
Some feedback relates to the **ambiguity of the subject**-**lack of precision**, and this is **voluntary on our part**.
|
||||
|
||||
Do not hesitate to contribute by making a PR in the **content-update branch**.
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Write a **function** that takes an array of i32 and returns the sum of the eleme
|
|||
|
||||
### Notions
|
||||
|
||||
[arrays](https://doc.rust-lang.org/std/primitive.array.html)
|
||||
- [arrays](https://doc.rust-lang.org/std/primitive.array.html)
|
||||
|
||||
### Expected functions
|
||||
|
||||
|
|
|
@ -6,11 +6,7 @@ Create the function `bigger` that gets the biggest positive number in the `HashM
|
|||
|
||||
### Notions
|
||||
|
||||
[hash maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)
|
||||
|
||||
### Dependencies
|
||||
|
||||
rand = "0.7"
|
||||
- [hash maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)
|
||||
|
||||
### Expected Function
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ pub fn str_len(s: ) -> usize {
|
|||
|
||||
### Notions
|
||||
|
||||
[Primitive Type str](https://doc.rust-lang.org/std/primitive.str.html)
|
||||
- [Primitive Type str](https://doc.rust-lang.org/std/primitive.str.html)
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -28,8 +28,8 @@ pub fn is_correct(v: &mut Vec<&str>) -> usize {
|
|||
|
||||
### Notions
|
||||
|
||||
- https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html
|
||||
- https://docs.rs/meval/0.2.0/meval/
|
||||
- [ownership](https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html)
|
||||
- [meval](https://docs.rs/meval/0.2.0/meval/)
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -25,8 +25,8 @@ Define:
|
|||
|
||||
### Notions
|
||||
|
||||
[Crate rand](https://docs.rs/rand/0.3.14/rand/)
|
||||
[Enums](https://doc.rust-lang.org/book/ch06-00-enums.html)
|
||||
- [Crate rand](https://docs.rs/rand/0.3.14/rand/)
|
||||
- [Enums](https://doc.rust-lang.org/book/ch06-00-enums.html)
|
||||
|
||||
### Dependencies
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ Define the **function** `change_brightness` that receives a `Vec` of lights, an
|
|||
|
||||
### Notions
|
||||
|
||||
[Example of Structs](https://doc.rust-lang.org/book/ch05-02-example-structs.html)
|
||||
[Keyword Self](https://doc.rust-lang.org/std/keyword.Self.html)
|
||||
- [Example of Structs](https://doc.rust-lang.org/book/ch05-02-example-structs.html)
|
||||
- [Keyword Self](https://doc.rust-lang.org/std/keyword.Self.html)
|
||||
|
||||
### Expected Functions and Structure
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ that appears more often).
|
|||
|
||||
### Notions
|
||||
|
||||
[hash maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)
|
||||
- [hash maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)
|
||||
|
||||
### Expected Functions
|
||||
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
## my-ls
|
||||
|
||||
### Objectives
|
||||
|
||||
- my-ls consists on creating your own `ls` command.
|
||||
|
||||
- The `ls` command shows you the files and folders of the directory specified after the command. By exclusion of this directory, it shows the files and folders of the present directory.
|
||||
|
||||
- The behavior of your `ls` must be identical to the original `ls` command with the following variations :
|
||||
- You must incorporate in your project at least the following flags of the `ls` command :
|
||||
- `-l`
|
||||
- `-R`
|
||||
- `-a`
|
||||
- `-r`
|
||||
- `-t`
|
||||
- Note that you can use various flags, in various ways, just like in `ls`.
|
||||
- When it comes to the `ls -l` display, it must be identical to the system command.
|
||||
- Other flags displays are up to you.
|
||||
|
||||
### Instructions
|
||||
|
||||
- Your project must be written in **Go**.
|
||||
- The code must respect the [**good practices**](../good-practices/README.md).
|
||||
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
|
||||
|
||||
### Allowed packages
|
||||
|
||||
- fmt
|
||||
- os
|
||||
- os/user
|
||||
- strconv
|
||||
- strings
|
||||
- syscall
|
||||
- time
|
||||
- math/rand
|
||||
- errors
|
||||
- io/fs
|
||||
|
||||
### Hint
|
||||
|
||||
- We strongly recommend that you account for the implications of the option `-R` from the very beginning of your code.
|
||||
|
||||
- The order that files and folders appear must be taken in consideration.
|
||||
|
||||
- We suggest that you consult the `ls` command manual.
|
||||
|
||||
### Usage
|
||||
|
||||
You can see how the `ls` command works, by using it on your terminal.
|
||||
|
||||
This project will help you learn about :
|
||||
|
||||
- Unix system
|
||||
- Ways to receive data.
|
||||
- Ways to output data.
|
||||
- Manipulation of strings.
|
||||
- Manipulation of structures.
|
|
@ -0,0 +1,121 @@
|
|||
#### Functional
|
||||
|
||||
###### Has the requirement for the allowed packages been respected?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with no arguments.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"<file name>"`.
|
||||
|
||||
###### Does it display the same file?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"<directory name>"`.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-l"`.
|
||||
|
||||
###### Does it display the same files and/or folders with the same display?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-l <file name>"`.
|
||||
|
||||
###### Does it display the same file with the same display?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-l <directory name>"`.
|
||||
|
||||
###### Does it display the same files and/or folders with the same display?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-l /usr/bin"`.
|
||||
|
||||
###### Does it display the same files and/or folders with the same display? Be aware of symbolic links.
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-R"`, in a directory with folders in it.
|
||||
|
||||
###### Does it display the same files and/or folders?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-a"`.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-r"`.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-t"`.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-la"`.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-l -t <directory name>"`.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-lRr <directory name>"`, in which the directory chosen contains folders.
|
||||
|
||||
###### Does it display the same files and/or folders in the same order?
|
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-l <directory name> -a <file name>"`
|
||||
|
||||
###### Is the output displayed the same way?
|
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-lR <directory name>///<sub directory name>/// <directory name>/<sub directory name>/"`
|
||||
|
||||
###### Is the output displayed the same way? Number of `/` must be the same.
|
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-la /dev"`
|
||||
|
||||
###### Does it display the same files and/or folders with the same display? Do not pay attention to ACL permission flag.
|
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-alRrt <directory name>"`, in which the directory chosen contains folders and files within folders. Time of modification of all files within that folder must be the same.
|
||||
|
||||
###### Is the displayed output the same?
|
||||
|
||||
##### Create directory with `-` name and run both my-ls and the system command ls with the arguments: `"-"`
|
||||
|
||||
###### Is the displayed output the same?
|
||||
|
||||
##### Create file and link for this file and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink file>/"`
|
||||
|
||||
###### Is the displayed output the same? Pay attention to `/` at the end.
|
||||
|
||||
##### Create file and link for this file and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink file>"`
|
||||
|
||||
###### Is the displayed output the same?
|
||||
|
||||
##### Create directory that contains files and link for this directory and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink dir>/"`
|
||||
|
||||
###### Is the displayed output the same? Pay attention to `/` at the end.
|
||||
|
||||
##### Create directory that contains files and link for this directory and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink dir>"`
|
||||
|
||||
###### Is the displayed output the same?
|
||||
|
||||
###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks)
|
||||
|
||||
#### General
|
||||
|
||||
###### +Does the program runs with colors as in the ls command?
|
||||
|
||||
###### +Does the program has other flags except for the mandatory ones?
|
||||
|
||||
##### Try running the program with `"-R ~"` and with the command time before the program name (ex: "time ./my-ls-1 -R ~").
|
||||
|
||||
###### +Is the real time less than 1,5 seconds?
|
||||
|
||||
#### Basic
|
||||
|
||||
###### +Does the code obey the [good practices](../../good-practices/README.md)?
|
||||
|
||||
###### +Is there a test file for this code?
|
||||
|
||||
###### +Are the tests checking each possible case?
|
||||
|
||||
#### Social
|
||||
|
||||
###### +Did you learn anything from this project?
|
||||
|
||||
###### +Would you recommend/nominate this program as an example for the rest of the school?
|
|
@ -10,7 +10,7 @@ Create a **function** `remove` that removes a given key from the `HashMap`.
|
|||
|
||||
### Notions
|
||||
|
||||
- https://doc.rust-lang.org/rust-by-example/std/hash.html
|
||||
- [HashMap](https://doc.rust-lang.org/rust-by-example/std/hash.html)
|
||||
|
||||
### Expected functions
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ Create the following functions:
|
|||
|
||||
### Notions
|
||||
|
||||
- https://doc.rust-lang.org/1.22.0/book/first-edition/the-stack-and-the-heap.html
|
||||
- https://doc.rust-lang.org/rust-by-example/primitives/literals.html
|
||||
- [stack and heap](https://doc.rust-lang.org/1.22.0/book/first-edition/the-stack-and-the-heap.html)
|
||||
- [Literals](https://doc.rust-lang.org/rust-by-example/primitives/literals.html)
|
||||
|
||||
### Expected Functions
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Define the **function** `is_permutation` that returns true if:
|
|||
|
||||
### Notions
|
||||
|
||||
[hash maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)
|
||||
- [hash maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)
|
||||
|
||||
### Expected Function
|
||||
|
||||
|
|
Loading…
Reference in New Issue