mirror of
https://github.com/askama-rs/askama.git
synced 2026-03-03 12:29:42 +00:00
170 lines
3.3 KiB
Rust
170 lines
3.3 KiB
Rust
use std::cell::Cell;
|
|
|
|
use askama::Template;
|
|
|
|
#[test]
|
|
fn test_prefixsum() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "
|
|
{%- let mut prefixsum = 0 -%}
|
|
{%- for i in 0..limit -%}
|
|
{%- mut prefixsum += i -%}
|
|
{{ prefixsum }}.
|
|
{%- endfor -%}
|
|
"
|
|
)]
|
|
struct PrefixSum {
|
|
limit: u32,
|
|
}
|
|
|
|
assert_eq!(
|
|
PrefixSum { limit: 10 }.render().unwrap(),
|
|
"0.1.3.6.10.15.21.28.36.45."
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_expr_on_lhs() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "
|
|
{%- let mut prefixsum = Cell::new(0u32) -%}
|
|
{%- for i in 0..limit -%}
|
|
{%- mut *prefixsum.get_mut() += i -%}
|
|
{{ prefixsum.get() }}.
|
|
{%- endfor -%}
|
|
"
|
|
)]
|
|
struct PrefixSum {
|
|
limit: u32,
|
|
}
|
|
|
|
assert_eq!(
|
|
PrefixSum { limit: 10 }.render().unwrap(),
|
|
"0.1.3.6.10.15.21.28.36.45."
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_add() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value += 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "11");
|
|
}
|
|
|
|
#[test]
|
|
fn test_sub() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value -= 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "7");
|
|
}
|
|
|
|
#[test]
|
|
fn test_mul() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value *= 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "18");
|
|
}
|
|
|
|
#[test]
|
|
fn test_div() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value /= 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "4");
|
|
}
|
|
|
|
#[test]
|
|
fn test_rem() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value %= 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "1");
|
|
}
|
|
|
|
#[test]
|
|
fn test_and() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value &= 3 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "1");
|
|
}
|
|
|
|
#[test]
|
|
fn test_or() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value |= 3 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "11");
|
|
}
|
|
|
|
#[test]
|
|
fn test_xor() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value ^= 3 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "10");
|
|
}
|
|
|
|
#[test]
|
|
fn test_shl() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value <<= 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "36");
|
|
}
|
|
|
|
#[test]
|
|
fn test_shr() {
|
|
#[derive(Template)]
|
|
#[template(
|
|
ext = "txt",
|
|
source = "{% let mut value = 9 %} {%- mut value >>= 2 -%} {{ value }}"
|
|
)]
|
|
struct Test;
|
|
|
|
assert_eq!(Test.render().unwrap(), "2");
|
|
}
|