Fix tests to run on stable

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/9/head
trivernis 4 years ago
parent 7dfa4d8f3e
commit a465a64944
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -2,7 +2,7 @@
name = "asciimath-rs"
description = "AsciiMath parser"
repository = "https://github.com/trivernis/asciimath-rs"
version = "0.5.6"
version = "0.5.7"
authors = ["trivernis <trivernis@protonmail.com>"]
edition = "2018"
readme = "README.md"
@ -13,7 +13,7 @@ categories = ["mathematics", "parser-implementations"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
charred = "0.3.1"
charred = "0.3.3"
maplit = "1.0.2"
lazy_static = "1.4.0"
htmlescape = "0.3.1"

@ -1,6 +1,3 @@
#![feature(test)]
extern crate test;
#[macro_use]
extern crate maplit;
@ -51,7 +48,6 @@ mod tests {
use crate::tokens::{Function, Grouping, Misc, Operation, Relation, Text, Token};
use crate::utils::Boxed;
use std::fs;
use test::Bencher;
#[test]
fn it_tokenizes_expressions1() {
@ -399,10 +395,4 @@ mod tests {
)
.unwrap();
}
#[bench]
fn bench_tokenizer(b: &mut Bencher) {
let expression = "sqrt 1 in NN implies 2^4 + sum_(k = 1)^3 - ((1),(2)) [[2, 3 + 3],[4, 5]] (((((((nesting)))))))";
b.iter(|| parse(expression.to_string()));
}
}

@ -460,7 +460,7 @@ impl TreeParser {
self.step();
Some(Frac {
top: previous.to_non_enclosed().boxed(),
bottom: self.parse_element().unwrap().to_non_enclosed().boxed(),
bottom: self.parse_element()?.to_non_enclosed().boxed(),
})
} else {
None

@ -21,33 +21,33 @@ pub fn get_operation_mappings() -> Vec<HashMap<TokenPattern, Operation>> {
G_STAR => Operation::Star,
},
hashmap! {
G_AST => Operation::Ast,
G_BOWTIE => Operation::Bowtie,
G_DIV => Operation::Div,
G_BIDWEDGE => Operation::BidWedge,
G_BIGVEE => Operation::BigVee,
G_BIGCAP => Operation::BigCap,
G_BIGCUP => Operation::BigCup,
G_AST => Operation::Ast,
G_BOWTIE => Operation::Bowtie,
G_DIV => Operation::Div,
G_BIDWEDGE => Operation::BidWedge,
G_BIGVEE => Operation::BigVee,
G_BIGCAP => Operation::BigCap,
G_BIGCUP => Operation::BigCup,
},
hashmap! {
G_PLUS => Operation::Plus,
G_MINUS => Operation::Minus,
G_CDOT => Operation::CDot,
G_SLASH => Operation::Slash,
G_PLUS => Operation::Plus,
G_MINUS => Operation::Minus,
G_CDOT => Operation::CDot,
G_SLASH => Operation::Slash,
G_BACKSLASH => Operation::Backslash,
G_TIMES => Operation::Times,
G_LTIMES => Operation::LTimes,
G_RTIMES => Operation::RTimes,
G_CIRC => Operation::Circ,
G_OPLUS => Operation::OPlus,
G_OTIMES => Operation::OTimes,
G_ODOT => Operation::ODot,
G_SUM => Operation::Sum,
G_PROD => Operation::Prod,
G_WEDGE => Operation::Wedge,
G_VEE => Operation::Vee,
G_CAP => Operation::Cap,
G_CUP => Operation::Cup,
G_TIMES => Operation::Times,
G_LTIMES => Operation::LTimes,
G_RTIMES => Operation::RTimes,
G_CIRC => Operation::Circ,
G_OPLUS => Operation::OPlus,
G_OTIMES => Operation::OTimes,
G_ODOT => Operation::ODot,
G_SUM => Operation::Sum,
G_PROD => Operation::Prod,
G_WEDGE => Operation::Wedge,
G_VEE => Operation::Vee,
G_CAP => Operation::Cap,
G_CUP => Operation::Cup,
},
]
}
@ -55,47 +55,47 @@ pub fn get_operation_mappings() -> Vec<HashMap<TokenPattern, Operation>> {
pub fn get_misc_mappings() -> Vec<HashMap<TokenPattern, Misc>> {
vec![
hashmap! {
G_TRIANGLE => Misc::Triangle,
G_TRIANGLE => Misc::Triangle,
},
hashmap! {
G_ANGLE => Misc::Angle,
G_ANGLE => Misc::Angle,
},
hashmap! {
G_A_FRAC => Misc::AsciiFrac,
G_T_FRAC => Misc::LatexFrac,
G_POW => Misc::Pow,
G_SUB => Misc::Sub,
G_SQRT => Misc::Sqrt,
G_ROOT => Misc::Root,
G_INT => Misc::Int,
G_OINT => Misc::OInt,
G_DEL => Misc::Del,
G_GRAD => Misc::Grad,
G_PM => Misc::PlusMinus,
G_EMPTYSET => Misc::EmptySet,
G_INFTY => Misc::Infty,
G_ALEPH => Misc::Aleph,
G_A_FRAC => Misc::AsciiFrac,
G_T_FRAC => Misc::LatexFrac,
G_POW => Misc::Pow,
G_SUB => Misc::Sub,
G_SQRT => Misc::Sqrt,
G_ROOT => Misc::Root,
G_INT => Misc::Int,
G_OINT => Misc::OInt,
G_DEL => Misc::Del,
G_GRAD => Misc::Grad,
G_PM => Misc::PlusMinus,
G_EMPTYSET => Misc::EmptySet,
G_INFTY => Misc::Infty,
G_ALEPH => Misc::Aleph,
G_THEREFORE => Misc::Therefore,
G_BECAUSE => Misc::Because,
G_ELDOTS => Misc::PLDots,
G_ECDOTS => Misc::PCDots,
G_VDOTS => Misc::VDots,
G_DDOTS => Misc::DDots,
G_EPIPES => Misc::EPipes,
G_QUAD => Misc::EQuad,
G_FROWN => Misc::Frown,
G_DIAMOND => Misc::Diamond,
G_SQUARE => Misc::Square,
G_LFLOOR => Misc::LFloor,
G_RFLOOR => Misc::RFloor,
G_LCEILING => Misc::LCeiling,
G_RCEILING => Misc::RCeiling,
G_COMPLEX => Misc::Complex,
G_NATURAL => Misc::Natural,
G_RATIONAL => Misc::Rational,
G_REAL => Misc::Real,
G_INTEGER => Misc::Integer,
G_T_TEX => Misc::LatexText,
G_BECAUSE => Misc::Because,
G_ELDOTS => Misc::PLDots,
G_ECDOTS => Misc::PCDots,
G_VDOTS => Misc::VDots,
G_DDOTS => Misc::DDots,
G_EPIPES => Misc::EPipes,
G_QUAD => Misc::EQuad,
G_FROWN => Misc::Frown,
G_DIAMOND => Misc::Diamond,
G_SQUARE => Misc::Square,
G_LFLOOR => Misc::LFloor,
G_RFLOOR => Misc::RFloor,
G_LCEILING => Misc::LCeiling,
G_RCEILING => Misc::RCeiling,
G_COMPLEX => Misc::Complex,
G_NATURAL => Misc::Natural,
G_RATIONAL => Misc::Rational,
G_REAL => Misc::Real,
G_INTEGER => Misc::Integer,
G_T_TEX => Misc::LatexText,
},
]
}
@ -103,30 +103,30 @@ pub fn get_misc_mappings() -> Vec<HashMap<TokenPattern, Misc>> {
pub fn get_relation_mapping() -> Vec<HashMap<TokenPattern, Relation>> {
vec![
hashmap! {
G_SUBSETEQ => Relation::SubSetEq,
G_SUPSETEQ => Relation::SupSetEq,
G_LE => Relation::Le,
G_GE => Relation::Ge,
G_SUCCEQ => Relation::SuccEq,
G_PRECEQ => Relation::PrecEq,
G_SUBSETEQ => Relation::SubSetEq,
G_SUPSETEQ => Relation::SupSetEq,
G_LE => Relation::Le,
G_GE => Relation::Ge,
G_SUCCEQ => Relation::SuccEq,
G_PRECEQ => Relation::PrecEq,
},
hashmap! {
G_SUCC => Relation::Succ,
G_SUCC => Relation::Succ,
},
hashmap! {
G_EQ => Relation::Eq,
G_NE => Relation::Ne,
G_LT => Relation::Lt,
G_GT => Relation::Gt,
G_PREC => Relation::Prec,
G_IN => Relation::In,
G_NOTIN => Relation::NotIn,
G_SUBSET => Relation::SubSet,
G_SUPSET => Relation::SupSet,
G_EQUIV => Relation::Equiv,
G_CONG => Relation::Cong,
G_APPROX => Relation::Approx,
G_PROP => Relation::PropTo,
G_EQ => Relation::Eq,
G_NE => Relation::Ne,
G_LT => Relation::Lt,
G_GT => Relation::Gt,
G_PREC => Relation::Prec,
G_IN => Relation::In,
G_NOTIN => Relation::NotIn,
G_SUBSET => Relation::SubSet,
G_SUPSET => Relation::SupSet,
G_EQUIV => Relation::Equiv,
G_CONG => Relation::Cong,
G_APPROX => Relation::Approx,
G_PROP => Relation::PropTo,
},
]
}
@ -134,20 +134,20 @@ pub fn get_relation_mapping() -> Vec<HashMap<TokenPattern, Relation>> {
pub fn get_logical_mappings() -> Vec<HashMap<TokenPattern, Logical>> {
vec![
hashmap! {
G_IFF => Logical::Iff,
G_IFF => Logical::Iff,
},
hashmap! {
G_AND => Logical::And,
G_OR => Logical::Or,
G_NOT => Logical::Not,
G_IMPLIES => Logical::Implies,
G_IF => Logical::If,
G_FORALL => Logical::ForAll,
G_EXISTS => Logical::Exists,
G_BOT => Logical::Bot,
G_TOP => Logical::Top,
G_VDASH => Logical::VDash,
G_MODELS => Logical::Models,
G_AND => Logical::And,
G_OR => Logical::Or,
G_NOT => Logical::Not,
G_IMPLIES => Logical::Implies,
G_IF => Logical::If,
G_FORALL => Logical::ForAll,
G_EXISTS => Logical::Exists,
G_BOT => Logical::Bot,
G_TOP => Logical::Top,
G_VDASH => Logical::VDash,
G_MODELS => Logical::Models,
},
]
}
@ -155,23 +155,23 @@ pub fn get_logical_mappings() -> Vec<HashMap<TokenPattern, Logical>> {
pub fn get_grouping_mappings() -> Vec<HashMap<TokenPattern, Grouping>> {
vec![
hashmap! {
G_LANGLE => Grouping::LAngle,
G_RANGLE => Grouping::RAngle,
G_RXPAR => Grouping::RXPar,
G_LXPAR => Grouping::LXPar,
G_MATRIX_SEP => Grouping::MSep,
G_LANGLE => Grouping::LAngle,
G_RANGLE => Grouping::RAngle,
G_RXPAR => Grouping::RXPar,
G_LXPAR => Grouping::LXPar,
G_MATRIX_SEP => Grouping::MSep,
},
hashmap! {
G_RPAREN => Grouping::RParen,
G_LPAREN => Grouping::LParen,
G_RBRACKET => Grouping::RBracket,
G_LBRACKET => Grouping::LBracket,
G_RBRACE => Grouping::RBrace,
G_LBRACE => Grouping::LBrace,
G_ABS => Grouping::Abs,
G_FLOOR => Grouping::Floor,
G_CEIL => Grouping::Ceil,
G_NORM => Grouping::Norm,
G_RPAREN => Grouping::RParen,
G_LPAREN => Grouping::LParen,
G_RBRACKET => Grouping::RBracket,
G_LBRACKET => Grouping::LBracket,
G_RBRACE => Grouping::RBrace,
G_LBRACE => Grouping::LBrace,
G_ABS => Grouping::Abs,
G_FLOOR => Grouping::Floor,
G_CEIL => Grouping::Ceil,
G_NORM => Grouping::Norm,
},
]
}
@ -179,20 +179,20 @@ pub fn get_grouping_mappings() -> Vec<HashMap<TokenPattern, Grouping>> {
pub fn get_arrow_mapping() -> Vec<HashMap<TokenPattern, Arrow>> {
vec![
hashmap! {
G_TWOHEADRIGHTARROW => Arrow::TwoHeadRightArrow,
G_TWOHEADRIGHTARROW => Arrow::TwoHeadRightArrow,
G_TWOHEADRIGHTARROWTAIL => Arrow::TwoHeadRightArrowTail
},
hashmap! {
G_UPARROW => Arrow::UpArrow,
G_DOWNARROW => Arrow::DownArrow,
G_RIGHTARROW => Arrow::RightArrow,
G_TO => Arrow::To,
G_RIGHTARROWTAIL => Arrow::RightArrowTail,
G_MAPSTO => Arrow::MapsTo,
G_LEFTARROW => Arrow::LeftArrow,
G_LEFTRIGHTARROW => Arrow::LeftRightArrow,
G_BIGRIGHTARROW => Arrow::BigRightArrow,
G_BIGLEFTARROW => Arrow::BigLeftArrow,
G_UPARROW => Arrow::UpArrow,
G_DOWNARROW => Arrow::DownArrow,
G_RIGHTARROW => Arrow::RightArrow,
G_TO => Arrow::To,
G_RIGHTARROWTAIL => Arrow::RightArrowTail,
G_MAPSTO => Arrow::MapsTo,
G_LEFTARROW => Arrow::LeftArrow,
G_LEFTRIGHTARROW => Arrow::LeftRightArrow,
G_BIGRIGHTARROW => Arrow::BigRightArrow,
G_BIGLEFTARROW => Arrow::BigLeftArrow,
G_BIGLEFTRIGHTARROW => Arrow::BigLeftRightArrow,
},
]
@ -200,58 +200,58 @@ pub fn get_arrow_mapping() -> Vec<HashMap<TokenPattern, Arrow>> {
pub fn get_accent_mappings() -> Vec<HashMap<TokenPattern, Accent>> {
vec![hashmap! {
G_HAT => Accent::Hat,
G_UNDERLINE => Accent::Underline,
G_OVERLINE => Accent::Overline,
G_VEC => Accent::Vec,
G_DOT => Accent::Dot,
G_DDOT => Accent::DDot,
G_OVERSET => Accent::OverSet,
G_UNDERSET => Accent::UnderSet,
G_UNDERBRACE => Accent::UnderBrace,
G_OVERBRACE => Accent::OverBrace,
G_CANCEL => Accent::Cancel,
G_HAT => Accent::Hat,
G_UNDERLINE => Accent::Underline,
G_OVERLINE => Accent::Overline,
G_VEC => Accent::Vec,
G_DOT => Accent::Dot,
G_DDOT => Accent::DDot,
G_OVERSET => Accent::OverSet,
G_UNDERSET => Accent::UnderSet,
G_UNDERBRACE => Accent::UnderBrace,
G_OVERBRACE => Accent::OverBrace,
G_CANCEL => Accent::Cancel,
}]
}
pub fn get_greek_mappings() -> Vec<HashMap<TokenPattern, Greek>> {
vec![hashmap! {
G_ALPHA => Greek::Alpha,
G_BETA => Greek::Beta,
G_GAMMA => Greek::Gamma,
G_BIGGAMMA => Greek::BigGamma,
G_DELTA => Greek::Delta,
G_BIGDELTA => Greek::BigDelta,
G_EPSILON => Greek::Epsilon,
G_VAREPSILON => Greek::VarEpsilon,
G_ZETA => Greek::Zeta,
G_ETA => Greek::Eta,
G_THETA => Greek::Theta,
G_BIGTHETA => Greek::BigTheta,
G_VARTHETA => Greek::VarTheta,
G_IOTA => Greek::Iota,
G_KAPPA => Greek::Kappa,
G_LAMBDA => Greek::Lambda,
G_BIGLAMBDA => Greek::BigLambda,
G_MU => Greek::Mu,
G_NU => Greek::Nu,
G_XI => Greek::Xi,
G_BIGXI => Greek::BigXi,
G_PI => Greek::Pi,
G_BIGPI => Greek::BigPi,
G_RHO => Greek::Rho,
G_SIGMA => Greek::Sigma,
G_BIGSIGMA => Greek::BigSigma,
G_TAU => Greek::Tau,
G_UPSILON => Greek::Upsilon,
G_PHI => Greek::Phi,
G_BIGPHI => Greek::BigPhi,
G_VARPHI => Greek::VarPhi,
G_CHI => Greek::Chi,
G_PSI => Greek::Psi,
G_BIGPSI => Greek::BigPsi,
G_OMEGA => Greek::Omega,
G_BIGOMEGA => Greek::BigOmega,
G_ALPHA => Greek::Alpha,
G_BETA => Greek::Beta,
G_GAMMA => Greek::Gamma,
G_BIGGAMMA => Greek::BigGamma,
G_DELTA => Greek::Delta,
G_BIGDELTA => Greek::BigDelta,
G_EPSILON => Greek::Epsilon,
G_VAREPSILON => Greek::VarEpsilon,
G_ZETA => Greek::Zeta,
G_ETA => Greek::Eta,
G_THETA => Greek::Theta,
G_BIGTHETA => Greek::BigTheta,
G_VARTHETA => Greek::VarTheta,
G_IOTA => Greek::Iota,
G_KAPPA => Greek::Kappa,
G_LAMBDA => Greek::Lambda,
G_BIGLAMBDA => Greek::BigLambda,
G_MU => Greek::Mu,
G_NU => Greek::Nu,
G_XI => Greek::Xi,
G_BIGXI => Greek::BigXi,
G_PI => Greek::Pi,
G_BIGPI => Greek::BigPi,
G_RHO => Greek::Rho,
G_SIGMA => Greek::Sigma,
G_BIGSIGMA => Greek::BigSigma,
G_TAU => Greek::Tau,
G_UPSILON => Greek::Upsilon,
G_PHI => Greek::Phi,
G_BIGPHI => Greek::BigPhi,
G_VARPHI => Greek::VarPhi,
G_CHI => Greek::Chi,
G_PSI => Greek::Psi,
G_BIGPSI => Greek::BigPsi,
G_OMEGA => Greek::Omega,
G_BIGOMEGA => Greek::BigOmega,
}]
}
@ -281,27 +281,27 @@ pub fn get_function_mappings() -> Vec<HashMap<&'static str, Function>> {
F_COTH => Function::Coth,
},
hashmap! {
F_SIN => Function::Sin,
F_COS => Function::Cos,
F_TAN => Function::Tan,
F_SEC => Function::Sec,
F_CSC => Function::Csc,
F_COT => Function::Cot,
F_ARCSIN => Function::ArcSin,
F_ARCCOS => Function::ArcCos,
F_ARCTAN => Function::ArcTan,
F_EXP => Function::Exp,
F_LOG => Function::Log,
F_LN => Function::Ln,
F_DET => Function::Det,
F_DIM => Function::Dim,
F_MOD => Function::Mod,
F_GCD => Function::Gcd,
F_LCM => Function::Lcm,
F_LUB => Function::Lub,
F_GLB => Function::Glb,
F_MIN => Function::Min,
F_MAX => Function::Max,
F_SIN => Function::Sin,
F_COS => Function::Cos,
F_TAN => Function::Tan,
F_SEC => Function::Sec,
F_CSC => Function::Csc,
F_COT => Function::Cot,
F_ARCSIN => Function::ArcSin,
F_ARCCOS => Function::ArcCos,
F_ARCTAN => Function::ArcTan,
F_EXP => Function::Exp,
F_LOG => Function::Log,
F_LN => Function::Ln,
F_DET => Function::Det,
F_DIM => Function::Dim,
F_MOD => Function::Mod,
F_GCD => Function::Gcd,
F_LCM => Function::Lcm,
F_LUB => Function::Lub,
F_GLB => Function::Glb,
F_MIN => Function::Min,
F_MAX => Function::Max,
},
hashmap! {
F_F => Function::F,

Loading…
Cancel
Save