GithubHelp home page GithubHelp logo

hasculator's Introduction

Hi There! I'm Leonhard. ๐Ÿ‘‹

Welcome to my Github Profile.

I am currently doing my PhD at the TU Delft in the Software Engineering Research Group (SERG) where I work in the CISELab. My research track is labelled "AI Testing and Testing AI" - So I do twice the AI and twice the Testing that other researchers do. I am very much the Thermomix of Software Engineering AI. But recently, I have spent most of my work-time with Matthi on improving tooling for Haskell!

I like:

  • โ˜• Java & ๐Ÿ’œ Haskell
  • ๐Ÿ” Testing
  • ๐Ÿ‘ฅ Humans

I try to do everything open source, so most of the repositories you see here have badgeD .

If you want to reach me, you can either

  • ๐Ÿ“ง email me at [email protected]
  • โ— Open an issue anywhere around and @ me

hasculator's People

Contributors

lapplislazuli avatar

Stargazers

 avatar

Watchers

 avatar  avatar

hasculator's Issues

Catch double-operators

The term "+" is correctly catched as "Lost Operator Error"

The term "++" is not catched at the moment and needs to be caught with an ErrorTerm

Split Tests into files

Currently the Tests are all written into one big chunk of a file.

Best would be a folder "Tests" which contains several files for the tests applied, and a toplevel "AllTests.hs" which combines and imports the deeper tests.

However i had troubles creating the structure as it's not that easy finding the modules.

Negating

The "-" can also be used as a "unary" operator to negate the following items.

The main difficulity is to detect in the parser whether the minus is a valid negation or an error, also that the minus can be binary gives me a hard time.

A simple approach would be in the tokenization to alter the term and make 2+ -3 to 2 + (0 -3)
which is somewhat ugly and not good.

Second option could be a negate function which should be implemented in Term
negate::Term->Term
which recursively negates terms and subterms. This is preferable.

for simplicity maybe make a new negation operator different from minus and get it running

Error Term

Currently different Parts of the application produce errors and store them in "Vars".

This is somewhat ugly and should be avoided.
Make a Error Term which can hold a string for the reason

Use the error term where the vars are misused.

Add Sinus + Cosinus

See Title - add these all time fan favorites to parser, term, solver and differ

Also add Unit Tests

Term's Show function

The Terms should have a function "show" which displays it as a string with correct operators (not with "Add (Numb 2) (Var a)" but as (2+a))

The primary goal is to have a string which is reparsable so that

parse (show t) = t

this should be intensively tested.

For the first implementation it's good enough to spam brackets I guess. Cleaning and minimizing the output can be done in a further task

Use Intersperse in Parser

I've made my own split function which splits into the first occurence of an operator, the operator and the rest of the list.
For putting the rest together I've made my own function conc'

There seems to be a function "Intersperse" from Data.List which does the same and is therefore preferable

Add a-a to simplify

There are some more entities which can be simplified.

missing examples:

  • a-a = 0
  • 1^n = 1
  • a % a = 1 (after check for zeros)

Just add them to the terms with a pattern match.

This is called an algebraic identity and should maybe be documented with an according link.

Test Tokenization

Currently only the parser is tested as a whole, but not it's inner components (which is not so good).

While the module should only export parse, i need to test several other methods aswell such as split, tokenize, etc...

Catch Lost-Opening Brackets

Currently the Term "(3+2 " is valid input and therefore not right.

There needs to be a special ErrorTerm and it needs to be detected properly

Use Either for Regula Falsi

The Errormonad makes some trouble for testing.

As i want Tests more at the moment more then perfect monads, it's preferable that the output type of Regula Falsi is Either Double String

Fix Errors regardingly

Where String contains my possible error.

On the run add a partial RegulaFalsi with 100 Iterations on the way

Fix Power-Diffing

Most of the differentation works (see UnitTests)

But the power is simply wrong.
Doublecheck Prof. Stroetmanns Code and maybe look for additional sources on this topic.

There has to be a common scheme regarding power-differentation.

Not Terminating Tests for Regula Falsi

Some of the Tests are not properly executed. It says:
Tests: 4, Tried 2, failed 0

Somewhat not all Tests are tried, some do not terminate (which is strange) and some yield errors (which is correct).

Fix the tests to properly run and check whether the regula falsi is wrong.

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.