config: Use config files only for user configuration

Switch to using the built-in data files by default, and extending them
with teh configuration file.

The `ShowBuiltinConstants`, `ShowBuiltinCharacters` and
`ShowBuiltinUnits` are not on by default. The size of the
corresponding `config/*.csv` files are reduced to a really simple
example.

Fixes: #1052

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
This commit is contained in:
Christophe de Dinechin 2024-07-27 16:32:03 +02:00
parent 1ca1be761f
commit d64fdb3452
10 changed files with 36 additions and 526 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,71 +1 @@
"", "AÀÁÂÃaàáâãÄÅĀĂĄäåāăąǍÆǼǺ@ǎæǽǻªΑΆАЯẠαάаяạẢẤẦẨẪảấầẩẫẬẮẰẲẴậắằẳẵẶặ"
"", "BΒБВЪЬбвъьßẞЫы",
"", "CÇĆĈĊcçćĉċČĆĈĊČčćĉċčСΓсγ©¢℅Ⓒ"
"", "DÐĎĐΔДdðďđδдЂђ₫"
"", "EÈÉÊËeèéêëĒĔĖĘĚěēĕėęЀЁЄЄЭѐёєєэЕΕΈΗΉεέηήеẸẺẼẾỀẹẻẽếềỂỄỆÆ€ểễệæ&Ⓔ"
"", "FΦФfφфϕƒ₣"
"", "GĜĞĠĢgĝğġģΓГЃҐγгѓґ"
"", "HĤĦΗΉХhĥħηήхЧШЩчшщℏ"
"", "IÌÍÎÏiìíîïĨĪĬĮİĩīĭįıǏIJΙΊΪǐijιίΐΪЇІИЍϊїіиѝЙỈỊйỉị"
"", "JĴIJЈjĵijȷј"
"", "KĶΚΧЌКķkκχќкĸ"
"", "LĹĻĽĿŁlĺļľŀłΛЛЉλљ₤Ⓛ"
"", "MΜМmµмμ"
"", "NÑŃŅŇŊnñńņňŋΝЊНνΰњнʼnⁿ№"
"", "OÒÓÔÕoòóôõÖŌŎŐƠöōŏőơǑØǾŒΌǒøǿœόΩΏОỌỎωώоọỏỐỒỔỖỘốồổỗộỚỜỞỠỢớờởỡợ°0º℅"
"", "PΠПРΨpπпрψϖ¶₧"
"", "Qq"
"", "RŔŖŘΡРРřrŕŗρрʳ"
"", "SŚŜŞŠȘsśŝşšșΣЅСσѕс$§ßẞſ"
"", "TŢŤŦȚtţťŧțΘΤТÞЋθτтþћЦц℡™"
"", "UÙÚÛÜuùúûüŨŪŬŮŰũūŭůűŲƯǓǕǙųưǔǖǘǛΫΎЎУǜϋύўуỤỦỨỪỬụủứừửỮỰЮữựю"
"", "VВvв"
"", "WŴẀẂẄΩwŵẁẃẅω"
"", "XΞΧХxξχх"
"", "YÝŶŸΥyýÿŷυΎỲỴỶỸύỳỵỷỹΫЫЮЯ¥ϋыюя"
"", "ZŹŻŽΖЏzźżžζџЖЗжз"
"", "0₀⁰°º"
"", "1₁¹¼½"
"", "2₂²½"
"", "3₃³¾"
"", "4₄⁴¼¾"
"", "5₅⁵"
"", "6₆⁶"
"", "7₇⁷"
"", "8₈⁸"
"", "9₉⁹"
"", "‽?¿¡ˀ,.·;!‼"
"", "^⁳ˆˇˉ˘˙˚˛˜˝̣ʹ͵"
"", "-—―_‗‾"
"", "'""′″`´‘’‚‛“”„"
"", "|†‡"
"", "*×·•"
"", "/÷⁄"
"", ".…"
"", "%‰½¼¾℅"
"", "<‹«>»›"
"", "$€¢£¤¥₣₤₧₫₭₹₺₽ƒ"
"RPL", "→⇄Σ∏∆≤≠≥∂∫ⒸⒺⓁ|?∡·×÷_⁳°″«»{}↑Ⓓⓧ"
"Arith", "+-*/×÷<=>≤≠≥·%^↑\±"
"Math", "Σ∏∆∂∫πℼ′″°ⅈⅉℂℚℝ+-±^↑*×·∙∡/÷%‰⁳⁰¹²³⁴⁵⁶⁷⁸⁹½¼¾ø∞₀₁₂₃₄₅₆₇₈₉⅛⅜⅝⅞|≤≠≈≡≥√∛∜ℎℏ⌐¬⌠⌡−∩∟∠∡⊿"
"French", "àéèêôùÀÉÈÊÔÙëîïûü§"
"Punct", ".,;:!?#$%&'""¡¿`´~\"
"Delim", "()[]{}«»'""¦§¨­¯"
"Arrows", "←↑→↓↔↕⇄⇆↨⌂▲▼◀▬▶◢◣◄▪►◥◤◀■▶"
"Blocks", "┌┬┐─├┼┤│└┴┘▬╒╤╕▄╞╪╡█╘╧╛▀╓╥╖▌╟╫╢▐╙╨╜▪╔╦╗═╠╬╣║╚╩╝■ ░▒▓□▫"
"Bullets", "·∙►▶→■□▪▫▬○●◊◘◙"
"Money", "$€¢£¤¥₣₤₧₫₭₹₺₽ƒ",
"Greek", "αβγδεΑΒΓΔΕάΆ·ΈέζηθικΖΗΘΙΚΉήϊίΊλμνξοΛΜΝΞΟʹ͵΅ΌόπρστυΠΡΣΤΥ ϋςΎύφχψωΰΦΧΨΩ΄ϕ;ϖώΏ"
"Europe", "ÀÁÂÃÄàáâãäÅÆÇåæçÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƒƠơƯưǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǺǻǼǽǾǿȘșȚțȷ"
"Cyrillic", "АБВГДабвгд ЕЖЗИЙежзий КЛМНОклмно ПРСТУпрсту ФХЦЧШфхцчш ЩЪЫЬЭщъыьэ ЮЯ юя "
"Picto", "⌂№℡™⚙☺☻☼♀♂♠♣♥♦◊♪♫○●▬▪▫░▒▓▀▄█▌▐■□"
"Music", "♩♪♫♭♮♯"
"XNums", "⁰¹²³⁴₀₁₂₃₄ⅠⅡⅢⅣⅤ⁵⁶⁷⁸⁹₅₆₇₈₉ⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ⅛⅜⅝⅞⁳№⁻"
"XLttr", "$&@¢©¥ℂ℅ℊℎℏℓ№ℚℝ℡™Å℮ℼⅈⅉⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ"
"All", " !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ⒸⒹⒺⓁⓅⓧÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƒƠơƯưǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǺǻǼǽǾǿȘșȚțȷʳˀˆˇˉ˘˙˚˛˜˝̣ʹ͵;΄Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϕϖЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџҐґẀẁẂẃẄẅẞẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ      ‐–—―‗‘’‚‛“”„†‡•…‰′″‹›‼‽‾⁄ ⁰⁳⁴⁵⁶⁷⁸⁹⁻ⁿ₀₁₂₃₄₅₆₇₈₉₣₤₧₫€₭₹₺₽ℂ℅ℊℎℏℓ№ℚℝ℡™ΩÅ℮ℼⅈⅉ⅛⅜⅝⅞ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ←↑→↓↔↕↨⇄⇆∂∆∏∑−∕∙√∛∜∞∟∠∡∩∫≈≠≡≤≥⊿⌂⌐⌠⌡─│┌┐└┘├┤┬┴┼═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌▐░▒▓■□▪▫▬▲▶►▼◀◄◊○●◘◙◢◣◤◥◦☺☻☼♀♂♠♣♥♦♪♫⚙"

Can't render this file because it has a wrong number of fields in line 2.

View file

@ -1,69 +1,5 @@
"Math"
"π", "3.14159"
"e", "2.71828"
"", "0+1"
"", "0+1"
"∞", "9.99999E999999"
"?", "Undefined"
"Chem"
"NA", "6.0221367E23_mol⁻¹"
"k", "1.380658E-23_J/K"
"Vm", "22.4141_mol⁻¹"
"R", "8.31451_J/(mol*K)"
"StdT", "273.15_K"
"StdP", "101.325_kPa"
"σ", "5.67051E-8_W/(m^2*K^4)"
"Phys"
"", "0+1"
"c", "299792458_m/s"
"ε0", "8.85418781761E-12_F/m"
"μ0", "1.25663706144E-6_H/m"
"g", "9.80665_m/s^2"
"G", "6.67259E-11_m^3/(s^2*kg)"
"h", "6.6260755E-34_J*s"
"ℏ", "1.05457266E-34_J*s"
"qe", "1.602176634E-19_C"
"me", "9.1093837139E-31_kg"
"qme", "175881962000_C/kg"
"mp", "1.6726231E-27_kg"
"mpme", "1836.152701"
"α", "0.00729735308"
"ø", "2.06783461E-15_Wb"
"F", "96485.309_C/mol"
"R∞", "10973731.534_m⁻¹"
"a0", "0.0529177249_nm"
"μB", "9.2740154E-24_J/T"
"μN", "5.0507837393E-27_J/T"
"λ0", "1239.8425_nm"
"f0", "2.4179883E14_Hz"
"λc", "0.00242631058_nm"
"rad", "1_r"
"twoπ", "π_2*r"
"angl", "180_°"
"c3", "0.002897756_m*K"
"kq", "0.00008617386_J/(K*C)"
"ε0q", "55263469.6_F/(m*C)"
"qε0", "1.4185978E-30_F*C/ m"
"εsi", "11.9"
"εox", "3.9"
"I0", "0.000000000001_W/m^2"
"Dates"
"BastilleDay", "17890714_date"
"MartinLutherKingDeath", "19680404_date"
"IndependenceDay", "17760704_date"
"Comp"
"No", "False"
"Yes", "True"
"UnixEpoch", "19700101_date"
"SinclairZX81RAM", "1_KiB"
"PageSize", "4_KiB"
"HelloWorld", """Hello World"""

Can't render this file because it has a wrong number of fields in line 3.

View file

@ -17,339 +17,6 @@
"CHF", "1.11_USD"
"Length"
"m", "1_m"
"yd", "9144/10000_m"
"ft", "3048/10000_m"
"ftUS", "1200/3937_m"
"US", "1_ftUS/ft"
"cm", "="
"mm", "="
"in", "254/10000_m"
"mil", "254/10000000_m"
"μ", "1_μm"
"km", "="
"mi", "5280_ft"
"nmi", "1852_m"
"miUS", "1_mi*US"
"fur", "660_ft"
"ch", "66_ft"
"rd", "1/4_ch"
"cable", "720_ft"
"fath", "6_ft"
"league", "3_mi"
"Mpc", "="
"pc", "30856775814913673_m"
"au", "149597870700_m"
"lyr", "31557600_ls"
"ls", "299792458_m"
"mi", "="
"miUS", "="
"ft", "="
"ftUS", "="
"US", "="
"nmi", "="
"cable", "="
"li", "1/100_ch"
"acable", "18532/100_m"
"icable", "1852/10_m"
"Å", "100_pm"
"fermi", "1_fm"
"μm", "="
"nm", "="
"chain", "1_ch"
"fathom", "1_fath"
"furlong", "1_fur"
"link", "1_li"
"rod", "1_rd"
"pole", "1_rd"
"perch", "1_rd"
"Area"
"m²", "="
"yd²", "="
"ft²", "="
"in²", "="
"cm²", "="
"km²", "="
"mi²", "="
"ha", "="
"a", "100_m²"
"acre", "1_ac"
"ac", "10_ch²"
"acUS", "10_ch²*US²"
"mi²", "="
"miUS²", "="
"US²", "="
"b", "100_fermi²"
"barn", "1_b"
"mm²", "="
"μm²", "="
"nm²", "="
"Volume"
"m³", "="
"l", "1_dm³"
"gal", "231_in³"
"cm³", "="
"mm³", "="
"gal", "="
"qt", "1/4_gal"
"pt", "1/8_gal"
"cup", "1/16_gal"
"floz", "1/32_qt"
"m³", "="
"yd³", "="
"ft³", "="
"in³", "="
"cm³", "="
"gill", "1/32_gal"
"drqt", "67200625/1000000_in³"
"drgal", "4_drqt"
"bu", "32_drqt"
"pk", "8_drqt"
"galC", "4546090_mm³"
"galUK", "4546092_mm³"
"ptUK", "1/2_galUK"
"ozUK", "1/40_galUK"
"fbm", "1_ft²*in"
"tbsp", "4_oz"
"tsp", "1/3_tbsp"
"st", "1_m³"
"bbl", "7056_in³"
"crbl", "5826_in³"
"Time"
"s", "1_s"
"min", "60_s"
"h", "3600_s"
"d", "86400_s"
"yr", "36524219/100000_d"
"Hz", "1_s⁻¹"
"kHz", "="
"MHz", "="
"GHz", "="
"rpm", "1/60_Hz"
"year", "1_y"
"day", "1_d"
"hour", "1_h"
"minute", "1_min"
"second", "1_s"
"Speed"
"m/s", "="
"km/h", "="
"ft/s", "="
"mph", "1_mi/h"
"knot", "1_nmi/h"
"c", "299792458_m/s"
"ga", "980665/100000_m/s^2"
"G", "1_ga"
"kph", "1_km/h"
"Mass"
"kg", "="
"g", "1_g"
"t", "1000_kg"
"ct", "200_mg"
"mol", "1_mol"
"lb", "45359237/100000_g"
"oz", "1/16_lb"
"dr", "1/256_lb"
"stone", "14_lb"
"grain", "1/7000_lb"
"qrUK", "28_lb"
"qrUS", "25_lb"
"cwtUK", "112_lb"
"cwtUS", "100_lb"
"gr", "1_grain"
"tonUK", "20_cwtUK"
"tonUS", "20_cwtUS"
"ton", "1_tonUS"
"slug", "1_lbf*s^2/ft"
"blob", "12_slug"
"dwt", "24_grain"
"ozt", "20_dwt"
"lbt", "12_ozt"
"dram", "1_dr"
"drachm", "1_dr"
"mole", "1_mol"
"carat", "1_ct"
"u", "1.6605402E-27_kg"
"Avogadro", "6.02214076E23"
"Force"
"N", "1_kg*m/s^2"
"dyn", "1/100000_N"
"kip", "1000_lbf"
"lbf", "44482216152605/10000000000000_N"
"gf", "980665/100000000_N"
"pdl", "138254954376/1000000000000_N"
"Energy"
"J", "1_kg*m^2/s^2"
"erg", "1/10000000_J"
"Kcal", "="
"cal", "41868/10000_J"
"Btu", "1055.05585262_J"
"calth", "4184/1000_J"
"cal4", "4204/1000_J"
"cal15", "41855/10000_J"
"cal20", "4182/1000_J"
"calmean", "4190/1000_J"
"therm", "105506000_J"
"eV", "1.60217733E-19_J"
"Power"
"W", "1_J/s"
"kW", "="
"MW", "="
"GW", "="
"hp", "745.699871582_W"
"Envir"
"K", "1_K"
"°C", "1_K"
"°R", "9/5_K"
"°F", "9/5_K"
"mbar", "="
"Pa", "1_N/m^2"
"atm", "101325_Pa"
"bar", "100000_Pa"
"psi", "6894.75729317_Pa"
"torr", "1/760_atm"
"ksi", "1000_psi"
"mmHg", "1_torr"
"inHg", "1_in/mm*mmHg"
"inH2O", "249.0889_Pa"
"Elec"
"A", "1_A"
"V", "1_kg*m^2/(A*s^3)"
"C", "1_A*s"
"Ω", "1_V/A"
"F", "1_C/V"
"Fdy", "96487_A*s"
"H", "1_ohm*s"
"S", "1_A/V"
"T", "1_V*s/m^2"
"Wb", "1_V*s"
"mho", "1_S"
"ohm", "1_Ω"
"Angle"
"turn", "1_turn"
"°", "1/360_turn"
"grad", "1/400_turn"
"r", "0.1591549430918953357688837633725144_turn"
"πr", "1/2_turn"
"dms", "1_°"
"arcmin", "1/60_°"
"arcs", "1/60_arcmin"
"sr", "1_sr"
"pir", "1/2_turn"
"Lt/Rad"
"cd", "1_cd"
"lm", "1_cd*sr"
"lx", "1_lm/m^2"
"fc", "1_lm/ft^2"
"flam", "1_cd/ft^2*r/pir"
"ph", "10000_lx"
"sb", "10000_cd/m^2"
"lam", "1_cd/cm^2*r/pir"
"nit", "1_cd/m^2"
"nt", "1_cd/m^2"
"Gy", "1_m^2/s^2"
"rad", "1/100_m^2/s^2"
"rem", "1_rad"
"Sv", "1_Gy"
"Bq", "1_Hz"
"Ci", "37_GBq"
"R", "258_µC/kg"
"Visc"
"P", "1/10_Pa*s"
"St", "1_cm^2/s"
"Comp"
"bit", "1_bit"
"byte", "8_bit"
"B", "1_byte"
"bps", "1_bit/s"
"baud", "1_bps/SR"
"Bd", "1_baud"
"mips", "1_mips"
"flops", "1_flops"
"SR", "1"
"dB", "1_dB"
"=Cycle"
"in", "mm"
"mm", "cm"

Can't render this file because it has a wrong number of fields in line 3.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -185,8 +185,8 @@ static const cstring basic_characters[] =
"╔╦╗═"
"╠╬╣║"
"╚╩╝■ "
"░▒▓□▫"),
"░▒▓□▫"
" ▫▪"),
"Bullets", ("·∙►▶→"
"■□▪▫▬"
@ -211,10 +211,6 @@ static const cstring basic_characters[] =
"ЩЪЫЬЭщъыьэ "
"ЮЯ юя "),
"Fill", ("▪▫░▒▓"
"▀▄█▌▐"
"■□"),
"Picto", ("⌂№℡™⚙"
"☺☻☼♀♂"
"♠♣♥♦◊"

View file

@ -339,16 +339,6 @@ static const cstring basic_constants[] =
"εox", "3.9", // SiO2 dielectric constant
"I0", "0.000000000001_W/m^2", // Ref intensity
// ------------------------------------------------------------------------
// Dates (just to show we can)
// ------------------------------------------------------------------------
"Dates", nullptr,
"BastilleDay", "17890714_date",
"MartinLutherKingDeath", "19680404_date",
"IndependenceDay", "17760704_date",
// ------------------------------------------------------------------------
// Computing
// ------------------------------------------------------------------------

View file

@ -789,9 +789,9 @@ FLAG(BigFractions, SmallFractions)
FLAG(DecimalComma, DecimalDot)
FLAG(NoTrailingDecimal, TrailingDecimal)
FLAG(NoLeadingZero, LeadingZero)
FLAG(ShowBuiltinUnits, HideBuiltinUnits)
FLAG(ShowBuiltinConstants, HideBuiltinConstants)
FLAG(ShowBuiltinCharacters, HideBuiltinCharacters)
FLAG(HideBuiltinUnits, ShowBuiltinUnits)
FLAG(HideBuiltinConstants, ShowBuiltinConstants)
FLAG(HideBuiltinCharacters, ShowBuiltinCharacters)
FLAG(HideEquationBody, ShowEquationBody)
FLAG(SquareMenus, RoundedMenus)
FLAG(TextStackDisplay, GraphicStackDisplay)

View file

@ -3452,7 +3452,7 @@ void tests::fraction_decimal_conversions()
step("Expressions");
test(CLEAR, "355 113 /",
LSHIFT, I, F1, F1, "-", ENTER) .expect("'355/113-π'");
LSHIFT, I, F2, F1, "-", ENTER) .expect("'355/113-π'");
test("→Num", ENTER).expect("0.000000266764");
step("Restoring small fraction mode")
@ -3904,7 +3904,8 @@ void tests::complex_types()
step("Angle mode conversions during polar entry")
.test(CLEAR, "GRAD", ENTER).noerror()
.test("1∡90°", ENTER).expect("1∡100")
.test("1", LSHIFT, G, F2, LSHIFT, N, F1, "90").expect("1∡100");
.test("1", LSHIFT, G, F2, LSHIFT, N, "90", F1, ENTER)
.expect("1∡100");
step("Convert real to rectangular");
test(CLEAR, "1 2", LSHIFT, G, F3)
@ -4099,7 +4100,7 @@ void tests::complex_arithmetic()
.expect("'(2+3)+A'");
step("Complex expression involving constants")
.test(CLEAR, LSHIFT, I, F1, F2, F3, F1, MUL, LSHIFT, B)
.test(CLEAR, LSHIFT, I, F2, F2, F3, F1, MUL, LSHIFT, B)
.expect("'e↑(ⅈ·π)'")
.test(LSHIFT, KEY1)
.expect("1.∡180.°");
@ -5140,7 +5141,7 @@ void tests::auto_simplification()
test(CLEAR, "", ENTER, ENTER, MUL).expect("-1");
step("i*i == -1 (symbolic constant)");
test(CLEAR, LSHIFT, I, F1, F3, ENTER, MUL).expect("-1");
test(CLEAR, LSHIFT, I, F2, F3, ENTER, MUL).expect("-1");
step("Simplification of rectangular real-only results");
test(CLEAR, "03 05", ENTER, MUL).expect("-15");
@ -7013,7 +7014,7 @@ void tests::graphic_stack_rendering()
.image_noheader("reduced");
step("Constants")
.test(CLEAR, LSHIFT, I, F1, F1, F2, F3)
.test(CLEAR, LSHIFT, I, F2, F1, F2, F3)
.image_noheader("constants", 2);
step("Vector")
@ -7093,7 +7094,7 @@ void tests::insertion_of_variables_constants_and_units()
BEGIN(insert);
step("Select constant menu")
.test(CLEAR, LSHIFT, I, F1).image_menus("constants-menu", 1);
.test(CLEAR, LSHIFT, I, F2).image_menus("constants-menu", 1);
step("Insert pi")
.test(CLEAR, F1).expect("π");
step("Insert e")
@ -7354,7 +7355,7 @@ void tests::character_menu()
step("RPL menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(F1, RSHIFT, ENTER)
.test(F2, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5, F6,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5, LSHIFT, F6,
@ -7364,7 +7365,7 @@ void tests::character_menu()
.expect("\"→⇄Σ∏∆_⁳°″ⒸⒺⓁ|?\"");
step("Arith menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(F2, RSHIFT, ENTER)
.test(F3, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5, F6,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5, LSHIFT, F6,
@ -7374,7 +7375,7 @@ void tests::character_menu()
.expect("\"+-*/×÷<=>≤≠≥·%^↑\\±\"");
step("Math menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(F3, RSHIFT, ENTER)
.test(F4, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5,
@ -7384,7 +7385,7 @@ void tests::character_menu()
.expect("\"Σ∏∆∂∫πℼ′″°ⅈⅉℂℚℝ\"");
step("French menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(F4, RSHIFT, ENTER)
.test(F1, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5,
@ -7414,7 +7415,7 @@ void tests::character_menu()
step("Arrows menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(LSHIFT, F1, RSHIFT, ENTER)
.test(LSHIFT, F2, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5,
@ -7424,7 +7425,7 @@ void tests::character_menu()
.expect("\"←↑→↓↔↕⇄⇆↨⌂▲▼◀▬▶\"");
step("Blocks menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(LSHIFT, F2, RSHIFT, ENTER)
.test(LSHIFT, F3, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5,
@ -7434,7 +7435,7 @@ void tests::character_menu()
.expect("\"┌┬┐─├┼┤│└┴┘▬╒╤╕\"");
step("Bullets menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(LSHIFT, F3, RSHIFT, ENTER)
.test(LSHIFT, F4, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5, LSHIFT, F6,
@ -7443,7 +7444,7 @@ void tests::character_menu()
.expect("\"·∙►▶→□▪▫▬○●◊◘◙\"");
step("Currency menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(LSHIFT, F4, RSHIFT, ENTER)
.test(LSHIFT, F5, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5, LSHIFT, F6,
@ -7452,7 +7453,7 @@ void tests::character_menu()
.expect("\"$€¢£¤₣₤₧₫₭₹₺₽ƒ\"");
step("Greek menu")
.test(CLEAR, RSHIFT, KEY2).noerror()
.test(LSHIFT, F5, RSHIFT, ENTER)
.test(LSHIFT, F1, RSHIFT, ENTER)
.test(NOSHIFT, F1, F2, F3, F4, F5,
LSHIFT, F1, LSHIFT, F2, LSHIFT, F3,
LSHIFT, F4, LSHIFT, F5,
@ -7926,7 +7927,7 @@ void tests::regression_checks()
test(CLEAR, "8 gamma", ENTER).expect("5040.");
step("Bug 168: pi no longer parses correctly");
test(CLEAR, SHIFT, I, F1, F1).expect("π");
test(CLEAR, LSHIFT, I, F2, F1).expect("π");
test(DOWN).editor("Ⓒπ");
test(ENTER).expect("π");
@ -9161,9 +9162,9 @@ tests &tests::itest(cstring txt)
// Special characters that require the characters menu
#define NEXT k = RESERVED2; break
case L'': itest(RSHIFT, KEY2, F3, RSHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F3, RSHIFT, F4); NEXT;
case L'': itest(RSHIFT, KEY2, F3, RSHIFT, F5); NEXT;
case L'': itest(RSHIFT, KEY2, F4, RSHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F4, RSHIFT, F4); NEXT;
case L'': itest(RSHIFT, KEY2, F4, RSHIFT, F5); NEXT;
case L'': itest(RSHIFT, KEY2, RSHIFT, F4, F6, F6, RSHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, RSHIFT, F4, F1); NEXT;
case L'¹': itest(RSHIFT, KEY2, RSHIFT, F4, F2); NEXT;
@ -9185,13 +9186,13 @@ tests &tests::itest(cstring txt)
case L'': itest(RSHIFT, KEY2, RSHIFT, F4, F6, LSHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, RSHIFT, F4, F6, LSHIFT, F4); NEXT;
case L'': itest(RSHIFT, KEY2, RSHIFT, F4, F6, LSHIFT, F5); NEXT;
case L'': itest(RSHIFT, KEY2, F3, F6, F6, F6, F6, LSHIFT, F2); NEXT;
case L'': itest(RSHIFT, KEY2, F3, F6, F6, F6, F6, LSHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F3, F6, F6, F6, F6, F6, F5); NEXT;
case L'': itest(RSHIFT, KEY2, F3, F6, F6, F6, F6, F6, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F1, F6, F6, F1); NEXT;
case L'': itest(RSHIFT, KEY2, F1, F6, F6, F2); NEXT;
case L'°': itest(RSHIFT, KEY2, F1, F6, SHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F4, F6, F6, F6, F6, LSHIFT, F2); NEXT;
case L'': itest(RSHIFT, KEY2, F4, F6, F6, F6, F6, LSHIFT, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F4, F6, F6, F6, F6, F6, F5); NEXT;
case L'': itest(RSHIFT, KEY2, F4, F6, F6, F6, F6, F6, F3); NEXT;
case L'': itest(RSHIFT, KEY2, F2, F6, F6, F1); NEXT;
case L'': itest(RSHIFT, KEY2, F2, F6, F6, F2); NEXT;
case L'°': itest(RSHIFT, KEY2, F2, F6, SHIFT, F3); NEXT;
#undef NEXT
}

View file

@ -571,9 +571,9 @@ static const cstring basic_units[] =
"hp", "745.699871582_W", // Horsepower
// ------------------------------------------------------------------------
// PRESSURE MENU
// ENVIRONMENT MENU
// ------------------------------------------------------------------------
"Press", nullptr,
"Envir", nullptr,
"Pa", "1_N/m^2", // Pascal
"atm", "101325_Pa", // Atmosphere
@ -586,11 +586,6 @@ static const cstring basic_units[] =
"inHg", "1_in/mm*mmHg", // inch of mercury
"inH2O", "249.0889_Pa", // Inch of H2O
// ------------------------------------------------------------------------
// TEMPERATURE MENU
// ------------------------------------------------------------------------
"Temp", nullptr,
"K", "1_K", // Kelvin
"°C", "1_K", // Celsius
"°R", "9/5_K", // Rankin
@ -634,9 +629,9 @@ static const cstring basic_units[] =
"pir", "1/2_turn", // Pi radians
// ------------------------------------------------------------------------
// LIGHT MENU
// LIGHT/Radiation MENU
// ------------------------------------------------------------------------
"Light", nullptr,
"Lt/Rad", nullptr,
"cd", "1_cd", // Candela
"lm", "1_cd*sr", // Lumen
@ -650,11 +645,6 @@ static const cstring basic_units[] =
"nit", "1_cd/m^2", // Nit
"nt", "1_cd/m^2", // Nit
// ------------------------------------------------------------------------
// RADIATION MENU
// ------------------------------------------------------------------------
"Rad", nullptr,
"Gy", "1_m^2/s^2", // Gray
"rad", "1/100_m^2/s^2", // rad
"rem", "1_rad", // rem