| 
									
										
										
										
											2021-06-22 00:29:07 +02:00
										 |  |  | import T from "./TestHelper"; | 
					
						
							| 
									
										
										
										
											2021-07-04 20:36:19 +02:00
										 |  |  | import {Denomination, Unit} from "../Customizations/JSON/Denomination"; | 
					
						
							| 
									
										
										
										
											2021-06-22 00:29:07 +02:00
										 |  |  | import {equal} from "assert"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default class UnitsSpec extends T { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor() { | 
					
						
							|  |  |  |         super("Units", [ | 
					
						
							|  |  |  |             ["Simple canonicalize", () => { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-22 03:16:45 +02:00
										 |  |  |                 const unit = new Denomination({ | 
					
						
							| 
									
										
										
										
											2021-06-22 00:29:07 +02:00
										 |  |  |                     canonicalDenomination: "m", | 
					
						
							|  |  |  |                     alternativeDenomination: ["meter"], | 
					
						
							|  |  |  |                     'default': true, | 
					
						
							|  |  |  |                     human: { | 
					
						
							|  |  |  |                         en: "meter" | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, "test") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-04 20:36:19 +02:00
										 |  |  |                 equal(unit.canonicalValue("42m"), "42 m") | 
					
						
							|  |  |  |                 equal(unit.canonicalValue("42"), "42 m") | 
					
						
							|  |  |  |                 equal(unit.canonicalValue("42 m"), "42 m") | 
					
						
							|  |  |  |                 equal(unit.canonicalValue("42 meter"), "42 m") | 
					
						
							| 
									
										
										
										
											2021-06-22 00:29:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-04 20:36:19 +02:00
										 |  |  |             }], | 
					
						
							|  |  |  |             ["Advanced canonicalize and back", () => { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 const unit = new Denomination({ | 
					
						
							|  |  |  |                     "canonicalDenomination": "MW", | 
					
						
							|  |  |  |                     "alternativeDenomination": ["megawatts", "megawatt"], | 
					
						
							|  |  |  |                     "human": { | 
					
						
							|  |  |  |                         "en": " megawatts", | 
					
						
							|  |  |  |                         "nl": " megawatt" | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                     "default": true | 
					
						
							|  |  |  |                 }, "test"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 const canonical = unit.canonicalValue("5") | 
					
						
							|  |  |  |                 equal(canonical, "5 MW") | 
					
						
							|  |  |  |                 const units = new Unit(["key"], [unit], false) | 
					
						
							|  |  |  |                 const [detected, detectedDenom] = units.findDenomination("5 MW") | 
					
						
							|  |  |  |                 equal(detected, "5") | 
					
						
							|  |  |  |                 equal(detectedDenom, unit) | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             ] | 
					
						
							| 
									
										
										
										
											2021-06-22 00:29:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |