/* 
 * OpenAPI Petstore
 *
 * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
 *
 * OpenAPI spec version: 1.0.0
 * 
 * Generated by: https://github.com/openapitools/openapi-generator.git
 */


using Xunit;

using System;
using System.Linq;
using System.IO;
using System.Collections.Generic;
using Org.OpenAPITools.Api;
using Org.OpenAPITools.Model;
using Org.OpenAPITools.Client;
using System.Reflection;
using Newtonsoft.Json;

namespace Org.OpenAPITools.Test
{
    /// <summary>
    ///  Class for testing ArrayOfArrayOfNumberOnly
    /// </summary>
    /// <remarks>
    /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
    /// Please update the test case below to test the model.
    /// </remarks>
    public class ArrayOfArrayOfNumberOnlyTests
    {
        /// <summary>
        /// Test an instance of ArrayOfArrayOfNumberOnly
        /// </summary>
        [Fact]
        public void ArrayOfArrayOfNumberOnlyInstanceTest()
        {
            // TODO uncomment below to test "IsInstanceOfType" ArrayOfArrayOfNumberOnly
            //Assert.IsType<ArrayOfArrayOfNumberOnly> (instance, "variable 'instance' is a ArrayOfArrayOfNumberOnly");
        }


        /// <summary>
        /// Test the property 'ArrayArrayNumber'
        /// </summary>
        [Fact]
        public void ArrayArrayNumberTest()
        {
            // 1st instance
            ArrayOfArrayOfNumberOnly instance1 = new ArrayOfArrayOfNumberOnly();
            List<decimal> list1 = new List<decimal>();
            list1.Add(11.1m);
            list1.Add(8.9m);

            List<List<decimal>> listOfList1 = new List<List<decimal>>();
            listOfList1.Add(list1);

            instance1.ArrayArrayNumber = listOfList1;

            // 2nd instance
            ArrayOfArrayOfNumberOnly instance2 = new ArrayOfArrayOfNumberOnly();
            List<decimal> list2 = new List<decimal>();
            list2.Add(11.1m);
            list2.Add(8.9m);

            List<List<decimal>> listOfList2 = new List<List<decimal>>();
            listOfList2.Add(list2);

            instance2.ArrayArrayNumber = listOfList2;

            Assert.True(instance1.Equals(instance2));

            // add one more element to list2
            list2.Add(183.3m);
            Assert.False(instance1.Equals(instance2));

            // 3rd instance
            ArrayOfArrayOfNumberOnly instance3 = new ArrayOfArrayOfNumberOnly();
            List<decimal> list3 = new List<decimal>();
            list3.Add(11.1m);
            list3.Add(1.1m); // not the same as 8.9

            List<List<decimal>> listOfList3 = new List<List<decimal>>();
            instance2.ArrayArrayNumber = listOfList3;

            Assert.False(instance1.Equals(instance3));
        }

    }

}
