public void ValidZipFileAllZeroActivityParses()
        {
            _filename = Path.GetTempFileName();

            using (var file = File.Create(ACTIVITY_BIN))
                for (int i = 0; i < 27; i++)
                {
                    file.WriteByte(0);
                }

            using (File.Create(LUX_BIN)) { }

            CreateInfoTxtFile(true, true, true);

            using (ZipFile zip = new ZipFile())
            {
                zip.AddFile(ACTIVITY_BIN);
                zip.AddFile(LUX_BIN);
                zip.AddFile(INFO_TXT);
                zip.Save(_filename);
            }

            var g = new Gt3XFile(_filename);

            foreach (AccelerationSample sample in g.ActivityEnumerator())
            {
                Assert.Equal(0, sample.X);
                Assert.Equal(0, sample.Y);
                Assert.Equal(0, sample.Z);
            }
        }
        public void ValidZipFileSampleActivityParses()
        {
            _filename = Path.GetTempFileName();

            List <byte> bytes = new List <byte>(14)
            {
                0x00,
                0x60,
                0x08,
                0xEB,
                0xD0,
                0x07,
                0x00,
                0x9E,
                0xBF,
                0x00,
                0x70,
                0x08,
                0xEB,
                0xF0
            };

            using (var file = File.Create(ACTIVITY_BIN))
                foreach (var b in bytes)
                {
                    file.WriteByte(b);
                }

            using (File.Create(LUX_BIN)) { }

            CreateInfoTxtFile(true, true, true);

            using (ZipFile zip = new ZipFile())
            {
                zip.AddFile(ACTIVITY_BIN);
                zip.AddFile(LUX_BIN);
                zip.AddFile(INFO_TXT);
                zip.Save(_filename);
            }

            var g = new Gt3XFile(_filename);

            int counter = 0;

            List <AccelerationSample> expectedSamples = new List <AccelerationSample>(3)
            {
                new AccelerationSample(0.023, 0.018, -0.947, DateTime.MinValue),
                new AccelerationSample(0.026, 0.021, -0.941, DateTime.MinValue),
                new AccelerationSample(0.023, 0.021, -0.941, DateTime.MinValue)
            };

            foreach (AccelerationSample actualSample in g.ActivityEnumerator())
            {
                Assert.Equal(expectedSamples[counter].X, actualSample.X);
                Assert.Equal(expectedSamples[counter].Y, actualSample.Y);
                Assert.Equal(expectedSamples[counter].Z, actualSample.Z);

                counter++;
            }
        }
        private void ExportFile()
        {
            //make sure file is still good
            Gt3XFile g;

            try
            {
                g = new Gt3XFile(_fileName);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "Unable to open gt3x File:\r\n\r\n" + ex.Message, "Invalid gt3x File",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            string exportFileName;

            using (var savefile = new SaveFileDialog())
            {
                savefile.Filter = comboBoxFormat.SelectedIndex == 0 ? "CSV File (*.csv)|*.csv" : "JSON File (*.json)|*.json";
                savefile.Title  = "Save Export";
                if (savefile.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                exportFileName = savefile.FileName;
            }

            using (var writer = new StreamWriter(exportFileName))
            {
                if (comboBoxData.SelectedIndex == 0)
                {
                    if (comboBoxFormat.SelectedIndex == 0)
                    {
                        var csv = new CsvWriter(writer);
                        csv.Configuration.RegisterClassMap <AcclererationClassMap>();
                        csv.WriteRecords(g.ActivityEnumerator());
                    }
                    else if (comboBoxFormat.SelectedIndex == 1)
                    {
                        writer.Write(JsonConvert.SerializeObject(g.ActivityEnumerator(), Formatting.Indented));
                    }
                }
                else if (comboBoxData.SelectedIndex == 1)
                {
                    if (comboBoxFormat.SelectedIndex == 0)
                    {
                        var csv = new CsvWriter(writer);
                        csv.Configuration.RegisterClassMap <LuxClassMap>();
                        csv.WriteRecords(g.LuxEnumerator());
                    }
                    else if (comboBoxFormat.SelectedIndex == 1)
                    {
                        writer.Write(JsonConvert.SerializeObject(g.LuxEnumerator(), Formatting.Indented));
                    }
                }
            }

            Process.Start(exportFileName);
        }