rust-stdf 1.1.0

A library for parsing Standard Test Data Format (STDF) files of version V4 and V4-2007.
Documentation
//
// record_serialize_test.rs
// Author: noonchen - chennoon233@foxmail.com
// Created Date: November 14th 2022
// -----
// Last Modified: Wed Nov 16 2022
// Modified By: noonchen
// -----
// Copyright (c) 2022 noonchen
//

#[cfg(feature = "serialize")]
use rust_stdf::{stdf_record_type::*, *};
#[cfg(feature = "serialize")]
use serde_json::{self, json};

#[test]
#[cfg(feature = "serialize")]
fn record_ser_test() {
    // check upper case
    if let StdfRecord::FAR(r) = StdfRecord::new(REC_FAR) {
        let json = serde_json::to_value(&r).unwrap();
        assert_eq!(json["CPU_TYPE"], json!(0));
        assert_eq!(json["cpu_type"], serde_json::Value::Null);
    }

    // check GDR
    let gdr_rec = StdfRecord::GDR(GDR {
        fld_cnt: 3,
        gen_data: vec![
            V1::Cn("test".to_string()),
            V1::Bn(vec![1, 2, 3, 4, 5, 6, 7]),
            V1::N1(8),
        ],
    });
    if let StdfRecord::GDR(r) = gdr_rec {
        let json = serde_json::to_value(&r).unwrap();
        assert_eq!(json["FLD_CNT"], json!(3));
        assert_eq!(json["GEN_DATA"][0]["Cn"], json!("test"));
        assert_eq!(json["GEN_DATA"][1]["Bn"], json!(vec![1, 2, 3, 4, 5, 6, 7]));
        assert_eq!(json["GEN_DATA"][2]["N1"], json!(8));
    }

    // check fields names
    assert_eq!(FAR::FIELD_NAMES_AS_ARRAY, ["CPU_TYPE", "STDF_VER"]);
    assert_eq!(EPS::FIELD_NAMES_AS_ARRAY, [""; 0]);
}