Add a test
This commit is contained in:
parent
c4becb0b12
commit
3ee0a9aee0
20
examples/materials.json
Normal file
20
examples/materials.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"materials": {
|
||||||
|
"metal": {
|
||||||
|
"reflectivity": 1.0
|
||||||
|
},
|
||||||
|
"plastic": {
|
||||||
|
"reflectivity": 0.5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"name": "hero",
|
||||||
|
"material": "metal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "monster",
|
||||||
|
"material": "plastic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
20
examples/materials.ron
Normal file
20
examples/materials.ron
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Scene( // class name is optional
|
||||||
|
materials: { // this is a map
|
||||||
|
"metal": (
|
||||||
|
reflectivity: 1.0,
|
||||||
|
),
|
||||||
|
"plastic": (
|
||||||
|
reflectivity: 0.5,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
entities: [ // this is an array
|
||||||
|
(
|
||||||
|
name: "hero",
|
||||||
|
material: "metal",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "monster",
|
||||||
|
material: "plastic",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
@ -2,7 +2,7 @@ use clap::{Parser, ValueEnum};
|
|||||||
use serde::de::Deserializer;
|
use serde::de::Deserializer;
|
||||||
use std::io::{Read, Write};
|
use std::io::{Read, Write};
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Debug, Parser)]
|
||||||
#[clap(author, version, about, long_about = None)]
|
#[clap(author, version, about, long_about = None)]
|
||||||
pub struct Opt {
|
pub struct Opt {
|
||||||
/// Input type
|
/// Input type
|
||||||
|
36
tests/integration.rs
Normal file
36
tests/integration.rs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
use tradaf::*;
|
||||||
|
|
||||||
|
fn example_to_vec(file: &str) -> Vec<u8> {
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::prelude::*;
|
||||||
|
|
||||||
|
let mut f = File::open(file).unwrap();
|
||||||
|
let mut buffer = vec![];
|
||||||
|
f.read_to_end(&mut buffer).unwrap();
|
||||||
|
buffer
|
||||||
|
}
|
||||||
|
|
||||||
|
fn example_to_string(file: &str) -> String {
|
||||||
|
let buffer = example_to_vec(file);
|
||||||
|
String::from_utf8(buffer).unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn ron_to_json() {
|
||||||
|
let opt = Opt {
|
||||||
|
input: Input::Ron,
|
||||||
|
output: Output::Json,
|
||||||
|
pretty: true,
|
||||||
|
no_newline: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
let input = example_to_vec("examples/materials.ron");
|
||||||
|
|
||||||
|
let mut output = vec![];
|
||||||
|
transcode(opt, &mut input.as_slice(), &mut output);
|
||||||
|
let out = String::from_utf8(output).unwrap();
|
||||||
|
|
||||||
|
let control = example_to_string("examples/materials.json");
|
||||||
|
|
||||||
|
assert_eq!(control, out);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user