mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-02 02:38:11 +08:00
Fix tests
This commit is contained in:
@@ -128,11 +128,11 @@ impl<'i, Root: Node<'i, I>, I: 'i + From<()>> ConsNode<I, Root> {
|
|||||||
mod test {
|
mod test {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::generic::FnNode;
|
use crate::generic::FnNode;
|
||||||
use crate::value::ClonedNode;
|
use crate::value::ValueRefNode;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn compose() {
|
fn compose() {
|
||||||
let value = ClonedNode::new(4u32);
|
let value = ValueRefNode::new(4u32);
|
||||||
let compose = value.then(FnNode::new(|x| x));
|
let compose = value.then(FnNode::new(|x| x));
|
||||||
assert_eq!(compose.eval(()), &4u32);
|
assert_eq!(compose.eval(()), &4u32);
|
||||||
let type_erased = &compose as &dyn Node<'_, (), Output = &'_ u32>;
|
let type_erased = &compose as &dyn Node<'_, (), Output = &'_ u32>;
|
||||||
@@ -141,7 +141,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ref_eval() {
|
fn test_ref_eval() {
|
||||||
let value = ClonedNode::new(5);
|
let value = ValueRefNode::new(5);
|
||||||
|
|
||||||
assert_eq!(value.eval(()), &5);
|
assert_eq!(value.eval(()), &5);
|
||||||
let id = FnNode::new(|x| x);
|
let id = FnNode::new(|x| x);
|
||||||
|
|||||||
@@ -13,6 +13,29 @@ impl<'i, const N: u32, I> Node<'i, I> for IntNode<N> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Default, Debug, Clone, Copy)]
|
||||||
|
pub struct ValueRefNode<T>(pub T);
|
||||||
|
|
||||||
|
impl<'i, T: 'i, I> Node<'i, I> for ValueRefNode<T> {
|
||||||
|
type Output = &'i T;
|
||||||
|
#[inline(always)]
|
||||||
|
fn eval(&'i self, _input: I) -> Self::Output {
|
||||||
|
&self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> ValueRefNode<T> {
|
||||||
|
pub const fn new(value: T) -> ValueRefNode<T> {
|
||||||
|
ValueRefNode(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> From<T> for ValueRefNode<T> {
|
||||||
|
fn from(value: T) -> Self {
|
||||||
|
ValueRefNode::new(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, Copy)]
|
#[derive(Default, Debug, Clone, Copy)]
|
||||||
pub struct AsRefNode<T: AsRef<U>, U>(pub T, PhantomData<U>);
|
pub struct AsRefNode<T: AsRef<U>, U>(pub T, PhantomData<U>);
|
||||||
|
|
||||||
|
|||||||
@@ -950,12 +950,12 @@ mod test {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
ids,
|
ids,
|
||||||
vec![
|
vec![
|
||||||
NodeId(16997244687192517417),
|
NodeId(12524483273268761808),
|
||||||
NodeId(12226224850522777131),
|
NodeId(14274752063205226537),
|
||||||
NodeId(9162113827627229771),
|
NodeId(7177002187999680489),
|
||||||
NodeId(12793582657066318419),
|
NodeId(17211043138366459510),
|
||||||
NodeId(16945623684036608820),
|
NodeId(6979825042154430163),
|
||||||
NodeId(2640415155091892458)
|
NodeId(2888425170017482846)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user