summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits
AgeCommit message (Collapse)Author
2025-05-30ExpressionParser: use correct operand orderAdrien Hopkins
Most of the internal problems with the expression parser happened because I was accepting the arguments for binary operators in the wrong order. For example, '2 - 1' became '1 2 -', not '2 1 -'. The likely cause of this error is the following sequence of events: - In commit 6dbd32cd, I created the code for interpreting RPN. I accepted two arguments from the stack (o1 and o2), then performed o1 <op> o2. However, because stacks are in LIFO order, I should have actually done o2 <op> o1. - Later, in commit 94349688, I created the code for converting an infix expression to RPN. Creating the expressions in the correct order did not work, because my interpreter used the incorrect order. To 'fix' this problem, I created the expressions in the incorrect order. I did not notice any discrepancy, probably because I was not testing the individual methods, only the two-step whole (which found no errors).
2025-05-17Setup automated javadocAdrien Hopkins
./gradlew javadoc
2025-04-30Add more UnitDatabase testsAdrien Hopkins
2025-04-20Improve Metric base units SuppressWarnings messageAdrien Hopkins
2025-03-21Add tests for NameSymbolAdrien Hopkins
2025-03-07convertToMulti: Compare unit bases to this.baseAdrien Hopkins
This is a necessary precondition for the conversion methods used later on in convertToMutliple, and it is simpler than the existing method. I can also be sure it works, due to the tests I just wrote.
2025-02-23Bump version number to 1.0.0b1v1.0.0b1Adrien Hopkins
Compared to version 0.5.0, this release: - allows conversion to sums of units (e.g. 4/3 ft → 1 ft + 4 in) - allows non-integer exponents in expressions - adds the ability to change the UI language - gracefully handles datafile errors - adds more information to the loading-success message, and adds it to the About tab - allows the user to not use the default datafiles No new features will be added until the release of version 1.0.0.
2024-08-28Bump version number to 1.0.0a1v1.0.0a1Adrien Hopkins
2024-08-22Show unit/dim file errors as popupAdrien Hopkins
Previously, any error in the unit or dimension file(s) crashes the program. Instead, 7Units now ignores any invalid lines, still parsing the correct ones, and shows a popup in case any errors happen.
2024-08-22Add 1e-12 to unit sum parts before flooringAdrien Hopkins
This ensures that small errors from floor arithmetic will not, for example, cause 2 feet to be converted to 1 foot + 12 in.
2024-08-22Allow fractional exponentsAdrien Hopkins
2024-08-22Validate unit set non-emptiness & dimensionAdrien Hopkins
2024-08-22Add named unit sets to unit converterAdrien Hopkins
2024-08-22Add ability to convert expression to sum of unitsAdrien Hopkins
2024-08-15Correct encoding of ±Adrien Hopkins
2024-03-24Bump version number to 0.5.0v0.5.0Adrien Hopkins
2024-03-24Format source code & set explicit UTF-8Adrien Hopkins
2024-03-23Add fractions using | to expressionsAdrien Hopkins
| is like /, but with higher precedence. This feature is a part of GNU Units, and was included in 7Units for compatibility.
2024-03-23Update documentation and version# (0.5.0a2)v0.5.0a2Adrien Hopkins
2024-03-23Complete exponentiation of dimensionsAdrien Hopkins
Previously, you could only exponentiate individual dimensions in expressions. For example, `Length^3` was valid, but `(Length / Time)^2` was not. This is now fixed.
2024-03-03Add + and - to prefixesAdrien Hopkins
This was added to be consistent with the data file spec, which was changed for consistency with unit expressions. It may not be a common expression, but it's a bit weird that you can use +/- in units but not prefixes, even though they're in the same file!
2023-09-24Bump version to v0.5.0a1v0.5.0a1Adrien Hopkins
2023-04-15Bumped version number to 0.4.1v0.4.1Adrien Hopkins
2022-07-17Bumped version number to 0.4.0v0.4.0Adrien Hopkins
2022-07-08Bumped version number to 0.4.0b1 & added @sincev0.4.0b1Adrien Hopkins
2022-05-18Added front-end code information to the design documentAdrien Hopkins
2022-04-19Finalized version 0.4.0-alpha.1Adrien Hopkins
2022-04-19Implemented prefix settings, saving & loading of settingsAdrien Hopkins
Also fixed some bugs: - Presenter now has default values for its settings in case they don't load properly - UnitDatabase ensures its units, prefixes and dimensions have all of the names you give it
2022-04-18Implemented one-way conversion, duplicate prefixes can now be hiddenAdrien Hopkins
2022-04-18Implemented rounding and duplicate-removal settings into the new GUIAdrien Hopkins
2022-04-16Implemented the unit & prefix viewersAdrien Hopkins
2022-04-16Added a full suite of frontend testsAdrien Hopkins
(Added tests for the settings and unit/prefix viewer parts of the GUI, which are not yet implemented)
2022-04-16Removed NamedObjectProduct in favour of the regular ObjectProductAdrien Hopkins
2022-04-10Created API for settings and unit/prefix viewingAdrien Hopkins
2022-03-10Named the metric dimensions & fixed NameSymbol.toStringAdrien Hopkins
2022-03-10Simplified toString of common unit classesAdrien Hopkins
2022-02-26Implemented expression conversion, tests now passAdrien Hopkins
2022-02-26Implemented unit conversion, with a few problemsAdrien Hopkins
TabbedView now displays its units, but with their toString method which shows their definition in addition to their name
2022-02-24Moved SemanticVersionNumber to sevenUnits.utilsAdrien Hopkins
2022-02-20Made the version number an object, changing it to 0.4.0-alpha+devAdrien Hopkins
2022-02-19Made barebones GUI (TabbedView)Adrien Hopkins
2021-12-24Did some API design for user settings, and moved GUI to a new packageAdrien Hopkins
2021-12-16Designed the API for a new GUIAdrien Hopkins
Currently "supports" unit conversion, expression conversion and settings loading
2021-12-02Updated changelog and version numberv0.3.2Adrien Hopkins
2021-11-29Added a full suite of tests for the UncertainDoubleAdrien Hopkins
2021-11-04Added a bunch of tests related to unit valuesAdrien Hopkins
2021-11-02Added a test for UnitDatabase.isRemovableDuplicateAdrien Hopkins
2021-10-07Added tests for getUnit and the prefixed unit mapAdrien Hopkins
Also fixed a bug where a prefixed unit map with units but no prefixes would appear empty
2021-10-04Added tests for valid & invalid dimension filesAdrien Hopkins
2021-09-27The ExpressionParser test is now a paramaterized testAdrien Hopkins