GithubHelp home page GithubHelp logo

pe's People

Contributors

nichyjt avatar

Watchers

 avatar

pe's Issues

DG - Class diagrams do not adhere to CS2113 notation

Description

The class diagram notation and presentations do not adhere to what was taught in CS2113.

For example, under the Handling of User Input section:

image.png

  1. The (C) circle should not be there
  2. The access modifiers should not be symbols but rather "+,-,#" as per what was taught.

This is purely cosmetic, but the proper adherence to what was taught is possible with some modification to the PUML style config.

`Graph` Crashes when frequency not separated from x with '*'

Description

When testing the program's Graph function, when the command Graph 1*sin(2x) is given, the application crashes.

Reproduction

Type in the command Graph 1*[trig]([number]x)

Any permutation of this will result in a crash. Some ested inputs:

  • `Graph 1*sin(2x)
  • Graph 1*tan(2x)
  • Graph 5*tan(5x - 10)

Screenshots

1*sin(2x)

image.png

10*tan(5x+20)

image.png

DG - TrigoGraph sequence diagrams that should return values have no return line

Description

Most function calls do not return a value with the dotted arrow. Minimally, this might be fine, but in this case the addition of the return dotted arrow to the diagram is important as actual non-void values are being returned.

This is important as the return values can be named, such as amplitude from getAmplitude. This helps the developer reading understand where certain names come from, such as the function call later to printAmplitude.

Further, the use of the dotted line is inconsistent, with only constructors having the return line.

image.png

Inconsistent Equation Formatting for `Graph` and `Quadratic`

Description

As a new user who is learning how to use the app and a fast typer, I would expect that the mathematical syntax for the Graph and Quadratic features to be the same.

Unfortunately,

  1. Graph requires coefficients to be suffixed with '*', while this is not necessary for Quadratic.
  2. Graph requires no padding, while Quadratic enforces a space between each term

Consider these 2 commands.

  1. Graph 1*sin(2*x+1)-1.
  2. Quadratic 5x^2 + 2x - 1

These are very different syntaxes. This is frustrating as a user as the mathematical syntax changes lower down my typing speed and force me to context switch and re-refer to the user guide, making for a bad user experience.

It would be great if the syntax was standardized and intuitive like the usual tools one would use for math, like Desmos or Matlab. This would make the product much more cohesive.

`Quadratic` solver fails for linear equations

Description

When x^2 coefficient is zero, the equation solver does not work as expected.

It claims that x is imaginary and does not tell me the 'roots' of the equation.

As a user, I would expect it to behave like a normal calculator and tell me that it has only one root (if its not parallel to x-axis) and has no minimum point.

Reproduction

Quadratic 0x^2 + x + 1

image.png

`Matrix` Simple matrix operations with transpose on the first matrix do not work

Description

When the first matrix in the equation is transposed, no operations work as expected.

This limitation is not documented in the UG.

None of the operators appear to be parsed correctly for the first matrix and it will always throw an exception and say that the operator in expression is unknown.

As a user, I would expect that transposing the first matrix would work.

Screenshots & Reproduction

Element-wise operation failing

image.png

Matrix addition failing

image.png

Editing the notes file does not seem to be possible

Description

As per the course program constraint, data should be human editable.

However, when editing a clean (empty) notes.txt file with proper syntax input, the data will always be 'corrupted'.

Reproduction

I first created a bunch of valid notes data and exited the application.

For reference, this was what was on my file:

image.png

Following the syntax, I created a foo4 notes entry. No padding was added to the end of line 5

image.png

Upon load of the file, the program warns that it has been corrupted.

`Matrix` should allow floats as elements

Description

Often, as a Computing student that may be taking Linear Algebra classes, the matrices we work with may not always have pure Integer values.

It is a big limitation for the student if they cannot input decimal values inside the matrix.

In any Linear Algebra class, there is bound to be matrices with decimal values inside the matrix. In these cases, the Matrix feature will be rendered obsolete as it will not work.

This limitation will likely cause 'occasional inconvenience to some users but they can continue to use the product` that does not require float inputs.

Is this a planned limitation? If so, why?

`Graph` produces weird output for coefficients of 0

Description

When the coefficient of a graph is zero and no vertical shift is provided, the output graph is distorted.

Reproduction

Graph 0*sin(x)

image.png

Gives:

image.png

Expected Behaviour

I would expect a graph with the y-axis visible and the text to be above the blue plot line. Alternatively, for the program to reject my input.

DG - Sequence diagram inconsistent self-invocation syntax

Description

In the DG, self-invocation initally had its own activation bar in the lifeline.

See the quadratic equations sequence diagram, under :QuadraticParser

image.png

But this style is not maintained in the DG. For example, see the Sequence Diagram for File Loading

image.png

This inconsistent styling may make it slightly inconvenient for developers who need to context switch between diagram styling.

DG - Matrix Class diagram is too complex

Description

The matrix class diagram is very large and might be hard for developers to properly understand at one go.

It can be simplified and factored out to make things easier for the reader.

ExceptionPrinter may be omitted, and the Tensor connections could be its own class diagram.

image.png

`List`ing the notes after manual modification will not update the program

Description

While running BadMath, as per the program constraints of needing the file to be human editable, I added in some valid inputs to the notes.txt file. Initially, the file was empty.

LOW	N	0	foo
LOW	N	1	foo1
LOW	N	0	foo2
LOW	N	1	foobar      fooobararar

Upon List, no notes are shown to exist.

Shouldn't the list be updated based on whatever is edited on the file?

Screenshot

Side by side view of the notes.txt and terminal

image.png

`Graph` tangent graphs always throw a 'no amplitude' message.

Description

When graphing a tangent graph, the user guide dictates that a coefficient must be given to the trigo sign.

However, upon proper usage of the command, say
1*tan(x), the output tells me that the graph has no amplitude.

This is very misleading for users. Naturally, I tried to remove the amplitude and the command failed:
tan(x).

This is frustrating for a user as the program seems to hint that there is no need for an amplitude for tan curves but it is required.

In fact, the message will be thrown for all proper inputs of tangent. Is this expected behaviour?

Screenshots

image.png

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.